From 135aa054858621fffb227f669dc75427d1d563b6 Mon Sep 17 00:00:00 2001 From: TermiNexus Date: Tue, 21 Jul 2026 14:41:22 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=9D=E8=AF=95=E8=BF=9B=E8=A1=8C=20Qt=20?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=EF=BC=8C=E5=A2=9E=E5=8A=A0=E4=BA=86=20AI=20?= =?UTF-8?q?=E4=BA=BA=E6=9C=BA=E8=B0=83=E8=AF=95=E5=B7=A5=E5=85=B7=20=5Fcon?= =?UTF-8?q?sole=EF=BC=8C=E4=BB=A5=E5=8F=8A=20TransPyV=20=E8=BF=9B=E8=A1=8C?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HEAD_ExprAttr.py | 1379 ------------- .../output/08ea5281873244fd.deps.json | 2 +- ...6.deps.json => 14d33679f7fadf1f.deps.json} | 2 +- .../output/_shared_sym_includes.pickle | Bin 369950 -> 0 bytes .../output/b8c66c8ff44eb874.deps.json | 1 - ...75d5e50909338.pyi => 754640ce30cfebcc.pyi} | 0 Test/ArgparseTest/temp/_phase1_manifest.json | 2 +- Test/ArgparseTest/temp/_sha1_map.txt | 2 +- .../AstTest/output/0853acdbdfc9b27c.deps.json | 2 +- .../AstTest/output/0c212981c180e7fb.deps.json | 1 - .../AstTest/output/34548789d646f432.deps.json | 1 - .../AstTest/output/4337fb260448bbe2.deps.json | 1 - .../AstTest/output/47767b5026a8ee15.deps.json | 1 - .../AstTest/output/4dd6b3f1427d1cc5.deps.json | 1 - .../AstTest/output/5dab8cb390496d22.deps.json | 1 - .../AstTest/output/6503c97dde0c79c4.deps.json | 1 - .../AstTest/output/657e182b27c2a022.deps.json | 1 - .../output/_shared_sym_includes.pickle | Bin 1550063 -> 0 bytes .../AstTest/output/b547ac4f380bddb6.deps.json | 1 - .../AstTest/output/b5a965302cded36b.deps.json | 1 - .../AstTest/output/ee52c08239684346.deps.json | 1 - ...75d5e50909338.pyi => 754640ce30cfebcc.pyi} | 0 Test/AstTest/temp/_phase1_manifest.json | 2 +- Test/AstTest/temp/_sha1_map.txt | 4 +- ...0c4bdc94641c5.pyi => c3b259b4059f8668.pyi} | 1 - Test/BuddyTest/App/mbuddytest.py | 4 +- .../output/0035c95a18d4f8e8.deps.json | 1 + .../output/067c78e9f121dce3.deps.json | 1 + .../output/06f53cc594b4ac6c.deps.json | 1 + .../output/14d33679f7fadf1f.deps.json | 1 + .../output/271ea3decb810db2.deps.json | 1 + .../output/4f218f56e4225fcd.deps.json | 1 - .../output/5a3d93d7860d5dc0.deps.json | 1 + .../output/5e430ae5bf7af3a2.deps.json | 2 +- .../output/6446627d4f07a1b5.deps.json | 1 + .../output/72e2d5ccb7cedcf1.deps.json | 1 + .../output/754640ce30cfebcc.deps.json | 1 + .../output/7e529fe7a078cfef.deps.json | 1 + .../output/9474791561654346.deps.json | 1 + .../output/_shared_sym_includes.pickle | Bin 0 -> 635333 bytes .../output/bbdf3bbd4c3bc28c.deps.json | 1 + .../output/c3b259b4059f8668.deps.json | 1 + .../output/c9f4be41ca1cc2b4.deps.json | 1 + .../output/f6b51804a0ba8ff0.deps.json | 1 + ...fcd.doc.json => 5a3d93d7860d5dc0.doc.json} | 0 ...18f56e4225fcd.pyi => 5a3d93d7860d5dc0.pyi} | 1 - ...75d5e50909338.pyi => 754640ce30cfebcc.pyi} | 0 Test/BuddyTest/temp/_phase1_manifest.json | 2 +- Test/BuddyTest/temp/_sha1_map.txt | 6 +- Test/BuddyTest/temp/_shared_sym.json | Bin 423192 -> 469037 bytes ...0c4bdc94641c5.pyi => c3b259b4059f8668.pyi} | 1 - .../temp/_phase1_manifest.json | 2 +- Test/CPythonTest/temp/_phase1_manifest.json | 2 +- Test/CPythonTest/temp/_shared_sym.json | Bin 564042 -> 609887 bytes Test/ClosureTest/temp/_phase1_manifest.json | 2 +- Test/ClosureTest2/temp/_phase1_manifest.json | 2 +- .../temp/_phase1_manifest.json | 2 +- Test/DecoratorTest/temp/_phase1_manifest.json | 2 +- .../output/20cd49775c100a38.deps.json | 2 +- .../output/240a9a4157959a9f.deps.json | 2 +- .../output/57288496f7c2d1ad.deps.json | 2 +- .../output/_shared_sym_includes.pickle | Bin 652063 -> 697908 bytes .../output/b3c2b99b6f3be4c7.deps.json | 2 +- .../output/e3e7b6de8d7d8b03.deps.json | 2 +- ...75d5e50909338.pyi => 754640ce30cfebcc.pyi} | 0 Test/DictTest/temp/_phase1_manifest.json | 2 +- Test/DictTest/temp/_sha1_map.txt | 2 +- .../output/_shared_sym_includes.pickle | Bin 307251 -> 353096 bytes Test/DocTest/temp/_phase1_manifest.json | 2 +- Test/DocTest/temp/_shared_sym.json | Bin 303970 -> 349815 bytes Test/EdgeCaseTest/temp/_phase1_manifest.json | 2 +- Test/EqTest/temp/_phase1_manifest.json | 2 +- .../output/48352329f97d0858.deps.json | 2 +- .../output/5b2e220c5bae60c9.deps.json | 2 +- .../output/668790e6c9efdbae.deps.json | 1 - .../output/79b337e5ea8951e2.deps.json | 2 +- .../output/_shared_sym_includes.pickle | Bin 624787 -> 670632 bytes ...75d5e50909338.pyi => 754640ce30cfebcc.pyi} | 0 Test/FakeDuckTest/temp/_phase1_manifest.json | 2 +- Test/FakeDuckTest/temp/_sha1_map.txt | 2 +- .../output/6deb1a24b47f47fc.deps.json | 2 +- ...75d5e50909338.pyi => 754640ce30cfebcc.pyi} | 0 .../ForAndLoopTest/temp/_phase1_manifest.json | 2 +- Test/ForAndLoopTest/temp/_sha1_map.txt | 2 +- .../temp/_phase1_manifest.json | 2 +- Test/FuncTest/temp/_phase1_manifest.json | 2 +- Test/GenericTest/temp/_phase1_manifest.json | 2 +- Test/GenericTest2/temp/_phase1_manifest.json | 2 +- .../output/02d833b3cf571c5b.deps.json | 2 +- ...75d5e50909338.pyi => 754640ce30cfebcc.pyi} | 0 Test/HashTableTest/temp/_phase1_manifest.json | 2 +- Test/HashTableTest/temp/_sha1_map.txt | 2 +- Test/IterTest/temp/_phase1_manifest.json | 2 +- .../output/8a97754e9e3c2b9a.deps.json | 2 +- ...75d5e50909338.pyi => 754640ce30cfebcc.pyi} | 0 Test/JsonTest/temp/_phase1_manifest.json | 2 +- Test/JsonTest/temp/_sha1_map.txt | 2 +- .../output/15f1ded02f3aa5bc.deps.json | 1 - .../output/21a7fcfc665f75ef.deps.json | 1 - .../output/2d39c6c7d3557b3e.deps.json | 1 - .../output/5b8cf12a5862b640.deps.json | 2 +- .../output/6b3bc463fd044545.deps.json | 1 - .../output/89b3965176cd2407.deps.json | 1 - .../output/946e087da91aaada.deps.json | 1 - .../output/95394ca8da0f655a.deps.json | 1 - .../output/_shared_sym_includes.pickle | Bin 777309 -> 0 bytes .../output/f9e36e2cd6fa659f.deps.json | 1 - ...75d5e50909338.pyi => 754640ce30cfebcc.pyi} | 0 Test/LLvmLiteTest/temp/_phase1_manifest.json | 2 +- Test/LLvmLiteTest/temp/_sha1_map.txt | 4 +- .../temp/c3b259b4059f8668.pyi} | 1 - .../output/1ff2c5eb32359e40.deps.json | 2 +- ...75d5e50909338.pyi => 754640ce30cfebcc.pyi} | 0 Test/ListTest/temp/_phase1_manifest.json | 2 +- Test/ListTest/temp/_sha1_map.txt | 2 +- Test/LoopTest/temp/_phase1_manifest.json | 2 +- .../output/3ff210e50f345c7c.deps.json | 2 +- ...75d5e50909338.pyi => 754640ce30cfebcc.pyi} | 0 Test/MemhubTest/temp/_phase1_manifest.json | 2 +- Test/MemhubTest/temp/_sha1_map.txt | 2 +- .../output/4175f14c5fbef360.deps.json | 2 +- ...75d5e50909338.pyi => 754640ce30cfebcc.pyi} | 0 Test/NewAstTest/temp/_phase1_manifest.json | 2 +- Test/NewAstTest/temp/_sha1_map.txt | 4 +- .../temp/c3b259b4059f8668.pyi} | 1 - .../output/22650858c377c847.deps.json | 2 +- Test/NoVTableTest/temp/1d40c4bdc94641c5.pyi | 24 - Test/NoVTableTest/temp/_phase1_manifest.json | 2 +- Test/NoVTableTest/temp/_sha1_map.txt | 2 +- Test/NoVTableTest/temp/c3b259b4059f8668.pyi | 23 + Test/PointerTest/temp/_phase1_manifest.json | 2 +- .../temp/_phase1_manifest.json | 2 +- .../output/271ea3decb810db2.deps.json | 2 +- .../output/3f7c5e78d8652535.deps.json | 2 +- ...8.deps.json => 754640ce30cfebcc.deps.json} | 2 +- .../output/90f67f777f23b84b.deps.json | 2 +- .../output/_shared_sym_includes.pickle | Bin 534585 -> 580421 bytes .../output/c24f25b14b4bbd0a.deps.json | 2 +- .../output/c3a6aed1f1fb8b1e.deps.json | 2 +- .../output/c9f4be41ca1cc2b4.deps.json | 2 +- ...75d5e50909338.pyi => 754640ce30cfebcc.pyi} | 0 Test/SimdTest/temp/_phase1_manifest.json | 2 +- Test/SimdTest/temp/_sha1_map.txt | 2 +- .../output/f492cb40d913400b.deps.json | 2 +- Test/SprintfTest/temp/1d40c4bdc94641c5.pyi | 24 - Test/SprintfTest/temp/_phase1_manifest.json | 2 +- Test/SprintfTest/temp/_sha1_map.txt | 2 +- Test/SprintfTest/temp/c3b259b4059f8668.pyi | 23 + .../output/924ed8cd4ea5c4c2.deps.json | 2 +- ...75d5e50909338.pyi => 754640ce30cfebcc.pyi} | 0 .../StringIterTest/temp/_phase1_manifest.json | 2 +- Test/StringIterTest/temp/_sha1_map.txt | 2 +- Test/StringTest/temp/_phase1_manifest.json | 2 +- Test/StructTest/temp/_phase1_manifest.json | 2 +- .../output/13110effbb0bb06c.deps.json | 2 +- .../output/2da636c61863c815.deps.json | 1 - .../output/59e00d50660b941e.deps.json | 2 +- .../output/76dd6c275aa72b3b.deps.json | 2 +- .../output/_shared_sym_includes.pickle | Bin 766994 -> 812839 bytes .../output/a03139660029514f.deps.json | 2 +- .../output/a68b70f233541a7f.deps.json | 2 +- .../output/abbcbd92436cc16a.deps.json | 2 +- .../output/c70684ccfe48a5a9.deps.json | 2 +- .../output/d152115b49e50218.deps.json | 2 +- Test/SysLibTest/temp/1d40c4bdc94641c5.pyi | 24 - ...75d5e50909338.pyi => 754640ce30cfebcc.pyi} | 0 Test/SysLibTest/temp/_phase1_manifest.json | 2 +- Test/SysLibTest/temp/_sha1_map.txt | 4 +- Test/SysLibTest/temp/_shared_sym.json | Bin 698259 -> 744104 bytes Test/SysLibTest/temp/c3b259b4059f8668.pyi | 23 + .../output/_shared_sym_includes.pickle | Bin 540397 -> 586233 bytes Test/TestFBProject/temp/_phase1_manifest.json | 2 +- .../output/3cd87018ba1e76bc.deps.json | 2 +- .../output/49cae05490a513cb.deps.json | 2 +- .../output/75583f20a922ab2e.deps.json | 2 +- .../output/8e0d8fdba991b3b4.deps.json | 2 +- .../output/cfc83b830141b00e.deps.json | 2 +- .../output/e5fb16127bce8f68.deps.json | 2 +- .../output/faec3233d98371da.deps.json | 2 +- ...75d5e50909338.pyi => 754640ce30cfebcc.pyi} | 0 Test/TestProject/temp/_phase1_manifest.json | 2 +- Test/TestProject/temp/_sha1_map.txt | 2 +- Test/TestProject/temp/_shared_sym.json | Bin 554459 -> 600304 bytes .../output/0df65b8ed15664b0.deps.json | 2 +- .../output/19f8024d10c828e8.deps.json | 2 +- .../output/1c46d554b3a3f9f3.deps.json | 2 +- .../output/213348433fb01cc6.deps.json | 2 +- .../output/257e074b935c33b4.deps.json | 2 +- .../output/451745df21e598af.deps.json | 2 +- .../output/541a1ed9b8be53c8.deps.json | 2 +- .../output/6ff26590374ae6fc.deps.json | 2 +- .../output/8ebed83a7817fa0c.deps.json | 2 +- .../output/90921d009fdd674c.deps.json | 2 +- .../output/_shared_sym_includes.pickle | Bin 723655 -> 769491 bytes .../output/c9d54a4158f7f5a8.deps.json | 2 +- .../output/cfc83b830141b00e.deps.json | 2 +- .../output/d541ade6afb689a5.deps.json | 2 +- ...75d5e50909338.pyi => 754640ce30cfebcc.pyi} | 0 Test/TestProject2/temp/_phase1_manifest.json | 2 +- Test/TestProject2/temp/_sha1_map.txt | 2 +- Test/TestProject2/temp/_shared_sym.json | Bin 463038 -> 508874 bytes .../output/0019c939aae7f9f1.deps.json | 2 +- .../output/1b58766d38d05de3.deps.json | 2 +- .../output/285a822aa26bfbda.deps.json | 2 +- .../output/64ac83614c9bdbc6.deps.json | 2 +- .../output/b235d6477436c524.deps.json | 2 +- .../output/b777c587cc21465a.deps.json | 2 +- .../output/c01b27dbcd683245.deps.json | 2 +- Test/TestProject3/temp/1d40c4bdc94641c5.pyi | 24 - ...75d5e50909338.pyi => 754640ce30cfebcc.pyi} | 0 Test/TestProject3/temp/_phase1_manifest.json | 2 +- Test/TestProject3/temp/_sha1_map.txt | 4 +- Test/TestProject3/temp/_shared_sym.json | Bin 520853 -> 566698 bytes Test/TestProject3/temp/c3b259b4059f8668.pyi | 23 + Test/TypeCastTest/temp/_phase1_manifest.json | 2 +- .../output/_shared_sym_includes.pickle | Bin 354964 -> 400809 bytes Test/VRandomTest/temp/_phase1_manifest.json | 2 +- .../output/c1416dfae155d6e2.deps.json | 2 +- Test/VariadicTest/temp/1d40c4bdc94641c5.pyi | 24 - Test/VariadicTest/temp/_phase1_manifest.json | 2 +- Test/VariadicTest/temp/_sha1_map.txt | 2 +- Test/VariadicTest/temp/c3b259b4059f8668.pyi | 23 + .../WebTest/output/8046d45456d0b153.deps.json | 2 +- .../output/_shared_sym_includes.pickle | Bin 377483 -> 423328 bytes .../WebTest/output/b558d8d8f01f4825.deps.json | 2 +- .../WebTest/output/d7e3386b828acb66.deps.json | 2 +- ...75d5e50909338.pyi => 754640ce30cfebcc.pyi} | 0 Test/WebTest/temp/_phase1_manifest.json | 2 +- Test/WebTest/temp/_sha1_map.txt | 2 +- Test/ZlibTest/temp/_phase1_manifest.json | 2 +- Test/ZlibTest/temp/_shared_sym.json | Bin 437132 -> 482977 bytes Test/regression_test.py | 2 +- TransPyV/App/lib/core/IncludesScanner.py | 26 +- TransPyV/App/lib/core/Phase1.py | 37 +- TransPyV/App/lib/core/StubMerger.py | 52 - TransPyV/App/main.py | 4 - TransPyV/Test/temp/_sha1_map.txt | 78 +- TransPyV/output/001c1416e7a7dc50.deps.json | 2 +- TransPyV/output/02885f6f134079c2.deps.json | 2 +- TransPyV/output/07a8c82a8ca2be90.deps.json | 2 +- TransPyV/output/0c56128647a0b845.deps.json | 2 +- TransPyV/output/21fffba3315e81b4.deps.json | 2 +- TransPyV/output/2998b8f78d7022bf.deps.json | 2 +- TransPyV/output/2ed380190e9df89e.deps.json | 2 +- TransPyV/output/3d3edda4a4e6c08b.deps.json | 2 +- TransPyV/output/4020cac9bab5e9f1.deps.json | 2 +- TransPyV/output/48fa8cc758d3826b.deps.json | 2 +- TransPyV/output/49cf633017627a4a.deps.json | 2 +- TransPyV/output/51f0144d6e8188d9.deps.json | 2 +- TransPyV/output/54014f6c53e9640b.deps.json | 2 +- TransPyV/output/541a090dde0cc1ba.deps.json | 2 +- TransPyV/output/66de93aaeebc0601.deps.json | 2 +- TransPyV/output/78bbe886bbe5ca8f.deps.json | 2 +- TransPyV/output/7e260c14d2712119.deps.json | 2 +- TransPyV/output/81eb28ba912467a6.deps.json | 2 +- TransPyV/output/83ba314b4637eec9.deps.json | 2 +- TransPyV/output/888ea5bd6ab516ae.deps.json | 2 +- TransPyV/output/8f12094c840be06a.deps.json | 2 +- TransPyV/output/ae0cc890f657076d.deps.json | 2 +- TransPyV/output/af9484a65085bf4b.deps.json | 2 +- TransPyV/output/b29b80b6106e4be7.deps.json | 2 +- TransPyV/output/c4f2d483ec0f4db5.deps.json | 2 +- TransPyV/output/d1599ecbac5b6586.deps.json | 2 +- TransPyV/output/d9322f0db660edd8.deps.json | 2 +- TransPyV/output/e5be27ae4fe7ce04.deps.json | 2 +- TransPyV/temp/_phase1_manifest.json | 2 +- TransPyV/temp/_sha1_map.txt | 15 +- TransPyV/temp/_shared_sym.json | Bin 1846304 -> 1933631 bytes ViperQtHelloWorld/App/main.py | 57 + ViperQtHelloWorld/project.vpj | 48 + _console.py | 195 ++ heapchk_test.c | 25 - heapvalidate_test.c | 33 - includes/memhub.py | 11 + includes/vqt6/CMakeLists.txt | 110 ++ includes/vqt6/README.md | 90 + includes/vqt6/__init__.py | 208 ++ includes/vqt6/_bridge.h | 151 ++ includes/vqt6/_bridge_core.cpp | 433 ++++ includes/vqt6/_bridge_gui.cpp | 868 ++++++++ includes/vqt6/_bridge_gui.h | 231 +++ includes/vqt6/_bridge_network.cpp | 519 +++++ includes/vqt6/_bridge_network.h | 137 ++ includes/vqt6/_bridge_widgets.cpp | 1745 +++++++++++++++++ includes/vqt6/_bridge_widgets.h | 432 ++++ includes/vqt6/_qtcore.py | 157 ++ includes/vqt6/_qtgui.py | 237 +++ includes/vqt6/_qtnetwork.py | 184 ++ includes/vqt6/_qtwidgets.py | 478 +++++ includes/vqt6/_types.py | 186 ++ lib/Projectrans/DeclarationGenerator.py | 12 +- lib/Projectrans/Phase1Generator.py | 23 +- lib/core/Handles/HandlesAnnAssign.py | 47 +- lib/core/Handles/HandlesAssign.py | 10 +- lib/core/Handles/HandlesClassDef.py | 122 +- lib/core/Handles/HandlesExprAsm.py | 3 + lib/core/Handles/HandlesExprBuiltin.py | 33 + lib/core/Handles/HandlesExprCall.py | 66 +- lib/core/Handles/HandlesReturn.py | 20 +- lib/core/LLVMCG/BaseGen.py | 101 + regression_log.txt | 1 - thistest/App/main.py | 12 +- thistest/output/6166aecc7fa7ad65.deps.json | 1 - thistest/output/_shared_sym_includes.pickle | Bin 619292 -> 0 bytes thistest/output/a7bc8c01684c0001.deps.json | 1 - ...5.deps.json => d53285adc924cc78.deps.json} | 2 +- ...4791561654346.pyi => 85a6b24688da4405.pyi} | 0 thistest/temp/_phase1_manifest.json | 2 +- thistest/temp/_sha1_map.txt | 4 +- ...2b5.doc.json => d53285adc924cc78.doc.json} | 0 ...17df16c98b2b5.pyi => d53285adc924cc78.pyi} | 3 +- 311 files changed, 7084 insertions(+), 2131 deletions(-) delete mode 100644 HEAD_ExprAttr.py rename Test/ArgparseTest/output/{aba439b7882ad9d6.deps.json => 14d33679f7fadf1f.deps.json} (73%) delete mode 100644 Test/ArgparseTest/output/_shared_sym_includes.pickle delete mode 100644 Test/ArgparseTest/output/b8c66c8ff44eb874.deps.json rename Test/ArgparseTest/temp/{47775d5e50909338.pyi => 754640ce30cfebcc.pyi} (100%) delete mode 100644 Test/AstTest/output/0c212981c180e7fb.deps.json delete mode 100644 Test/AstTest/output/34548789d646f432.deps.json delete mode 100644 Test/AstTest/output/4337fb260448bbe2.deps.json delete mode 100644 Test/AstTest/output/47767b5026a8ee15.deps.json delete mode 100644 Test/AstTest/output/4dd6b3f1427d1cc5.deps.json delete mode 100644 Test/AstTest/output/5dab8cb390496d22.deps.json delete mode 100644 Test/AstTest/output/6503c97dde0c79c4.deps.json delete mode 100644 Test/AstTest/output/657e182b27c2a022.deps.json delete mode 100644 Test/AstTest/output/_shared_sym_includes.pickle delete mode 100644 Test/AstTest/output/b547ac4f380bddb6.deps.json delete mode 100644 Test/AstTest/output/b5a965302cded36b.deps.json delete mode 100644 Test/AstTest/output/ee52c08239684346.deps.json rename Test/AstTest/temp/{47775d5e50909338.pyi => 754640ce30cfebcc.pyi} (100%) rename Test/AstTest/temp/{1d40c4bdc94641c5.pyi => c3b259b4059f8668.pyi} (98%) create mode 100644 Test/BuddyTest/output/0035c95a18d4f8e8.deps.json create mode 100644 Test/BuddyTest/output/067c78e9f121dce3.deps.json create mode 100644 Test/BuddyTest/output/06f53cc594b4ac6c.deps.json create mode 100644 Test/BuddyTest/output/14d33679f7fadf1f.deps.json create mode 100644 Test/BuddyTest/output/271ea3decb810db2.deps.json delete mode 100644 Test/BuddyTest/output/4f218f56e4225fcd.deps.json create mode 100644 Test/BuddyTest/output/5a3d93d7860d5dc0.deps.json create mode 100644 Test/BuddyTest/output/6446627d4f07a1b5.deps.json create mode 100644 Test/BuddyTest/output/72e2d5ccb7cedcf1.deps.json create mode 100644 Test/BuddyTest/output/754640ce30cfebcc.deps.json create mode 100644 Test/BuddyTest/output/7e529fe7a078cfef.deps.json create mode 100644 Test/BuddyTest/output/9474791561654346.deps.json create mode 100644 Test/BuddyTest/output/_shared_sym_includes.pickle create mode 100644 Test/BuddyTest/output/bbdf3bbd4c3bc28c.deps.json create mode 100644 Test/BuddyTest/output/c3b259b4059f8668.deps.json create mode 100644 Test/BuddyTest/output/c9f4be41ca1cc2b4.deps.json create mode 100644 Test/BuddyTest/output/f6b51804a0ba8ff0.deps.json rename Test/BuddyTest/temp/{4f218f56e4225fcd.doc.json => 5a3d93d7860d5dc0.doc.json} (100%) rename Test/BuddyTest/temp/{4f218f56e4225fcd.pyi => 5a3d93d7860d5dc0.pyi} (96%) rename Test/BuddyTest/temp/{47775d5e50909338.pyi => 754640ce30cfebcc.pyi} (100%) rename Test/BuddyTest/temp/{1d40c4bdc94641c5.pyi => c3b259b4059f8668.pyi} (98%) rename Test/DictTest/temp/{47775d5e50909338.pyi => 754640ce30cfebcc.pyi} (100%) delete mode 100644 Test/FakeDuckTest/output/668790e6c9efdbae.deps.json rename Test/FakeDuckTest/temp/{47775d5e50909338.pyi => 754640ce30cfebcc.pyi} (100%) rename Test/ForAndLoopTest/temp/{47775d5e50909338.pyi => 754640ce30cfebcc.pyi} (100%) rename Test/HashTableTest/temp/{47775d5e50909338.pyi => 754640ce30cfebcc.pyi} (100%) rename Test/JsonTest/temp/{47775d5e50909338.pyi => 754640ce30cfebcc.pyi} (100%) delete mode 100644 Test/LLvmLiteTest/output/15f1ded02f3aa5bc.deps.json delete mode 100644 Test/LLvmLiteTest/output/21a7fcfc665f75ef.deps.json delete mode 100644 Test/LLvmLiteTest/output/2d39c6c7d3557b3e.deps.json delete mode 100644 Test/LLvmLiteTest/output/6b3bc463fd044545.deps.json delete mode 100644 Test/LLvmLiteTest/output/89b3965176cd2407.deps.json delete mode 100644 Test/LLvmLiteTest/output/946e087da91aaada.deps.json delete mode 100644 Test/LLvmLiteTest/output/95394ca8da0f655a.deps.json delete mode 100644 Test/LLvmLiteTest/output/_shared_sym_includes.pickle delete mode 100644 Test/LLvmLiteTest/output/f9e36e2cd6fa659f.deps.json rename Test/LLvmLiteTest/temp/{47775d5e50909338.pyi => 754640ce30cfebcc.pyi} (100%) rename Test/{NewAstTest/temp/1d40c4bdc94641c5.pyi => LLvmLiteTest/temp/c3b259b4059f8668.pyi} (98%) rename Test/ListTest/temp/{47775d5e50909338.pyi => 754640ce30cfebcc.pyi} (100%) rename Test/MemhubTest/temp/{47775d5e50909338.pyi => 754640ce30cfebcc.pyi} (100%) rename Test/NewAstTest/temp/{47775d5e50909338.pyi => 754640ce30cfebcc.pyi} (100%) rename Test/{LLvmLiteTest/temp/1d40c4bdc94641c5.pyi => NewAstTest/temp/c3b259b4059f8668.pyi} (98%) delete mode 100644 Test/NoVTableTest/temp/1d40c4bdc94641c5.pyi create mode 100644 Test/NoVTableTest/temp/c3b259b4059f8668.pyi rename Test/SimdTest/output/{47775d5e50909338.deps.json => 754640ce30cfebcc.deps.json} (77%) rename Test/SimdTest/temp/{47775d5e50909338.pyi => 754640ce30cfebcc.pyi} (100%) delete mode 100644 Test/SprintfTest/temp/1d40c4bdc94641c5.pyi create mode 100644 Test/SprintfTest/temp/c3b259b4059f8668.pyi rename Test/StringIterTest/temp/{47775d5e50909338.pyi => 754640ce30cfebcc.pyi} (100%) delete mode 100644 Test/SysLibTest/output/2da636c61863c815.deps.json delete mode 100644 Test/SysLibTest/temp/1d40c4bdc94641c5.pyi rename Test/SysLibTest/temp/{47775d5e50909338.pyi => 754640ce30cfebcc.pyi} (100%) create mode 100644 Test/SysLibTest/temp/c3b259b4059f8668.pyi rename Test/TestProject/temp/{47775d5e50909338.pyi => 754640ce30cfebcc.pyi} (100%) rename Test/TestProject2/temp/{47775d5e50909338.pyi => 754640ce30cfebcc.pyi} (100%) delete mode 100644 Test/TestProject3/temp/1d40c4bdc94641c5.pyi rename Test/TestProject3/temp/{47775d5e50909338.pyi => 754640ce30cfebcc.pyi} (100%) create mode 100644 Test/TestProject3/temp/c3b259b4059f8668.pyi delete mode 100644 Test/VariadicTest/temp/1d40c4bdc94641c5.pyi create mode 100644 Test/VariadicTest/temp/c3b259b4059f8668.pyi rename Test/WebTest/temp/{47775d5e50909338.pyi => 754640ce30cfebcc.pyi} (100%) create mode 100644 ViperQtHelloWorld/App/main.py create mode 100644 ViperQtHelloWorld/project.vpj create mode 100644 _console.py delete mode 100644 heapchk_test.c delete mode 100644 heapvalidate_test.c create mode 100644 includes/vqt6/CMakeLists.txt create mode 100644 includes/vqt6/README.md create mode 100644 includes/vqt6/__init__.py create mode 100644 includes/vqt6/_bridge.h create mode 100644 includes/vqt6/_bridge_core.cpp create mode 100644 includes/vqt6/_bridge_gui.cpp create mode 100644 includes/vqt6/_bridge_gui.h create mode 100644 includes/vqt6/_bridge_network.cpp create mode 100644 includes/vqt6/_bridge_network.h create mode 100644 includes/vqt6/_bridge_widgets.cpp create mode 100644 includes/vqt6/_bridge_widgets.h create mode 100644 includes/vqt6/_qtcore.py create mode 100644 includes/vqt6/_qtgui.py create mode 100644 includes/vqt6/_qtnetwork.py create mode 100644 includes/vqt6/_qtwidgets.py create mode 100644 includes/vqt6/_types.py delete mode 100644 regression_log.txt delete mode 100644 thistest/output/6166aecc7fa7ad65.deps.json delete mode 100644 thistest/output/_shared_sym_includes.pickle delete mode 100644 thistest/output/a7bc8c01684c0001.deps.json rename thistest/output/{92e17df16c98b2b5.deps.json => d53285adc924cc78.deps.json} (65%) rename thistest/temp/{9474791561654346.pyi => 85a6b24688da4405.pyi} (100%) rename thistest/temp/{92e17df16c98b2b5.doc.json => d53285adc924cc78.doc.json} (100%) rename thistest/temp/{92e17df16c98b2b5.pyi => d53285adc924cc78.pyi} (85%) diff --git a/HEAD_ExprAttr.py b/HEAD_ExprAttr.py deleted file mode 100644 index 90ab2c4..0000000 --- a/HEAD_ExprAttr.py +++ /dev/null @@ -1,1379 +0,0 @@ -from __future__ import annotations -from typing import Any, TYPE_CHECKING -if TYPE_CHECKING: - from lib.core.translator import Translator - from lib.core.LlvmCodeGenerator import LlvmCodeGenerator -from lib.core.Handles.HandlesBase import BaseHandle, FuncMeta -import ast -import llvmlite.ir as ir - - -class ExprAttrHandle(BaseHandle): - - # ========== 辅助方法 ========== - - def _apply_bswap_on_Load(self, val: ir.Value, ClassName: str, AttrName: str) -> ir.Value: - Gen: LlvmCodeGenerator = self.Trans.LlvmGen - byte_order: str = getattr(Gen, 'class_member_byteorders', {}).get(ClassName, {}).get(AttrName, "") - return Gen._apply_bswap_if_big(val, byte_order, f"bswap_load_{AttrName}") - - def _load_arr_elem_with_bswap(self, Gen: LlvmCodeGenerator, ElemPtr: ir.Value, arr_byte_order: str) -> ir.Value: - """加载数组元素并按字节序应用 bswap""" - val: ir.Value = Gen._load(ElemPtr, name="arr_elem_load") - return Gen._apply_bswap_if_big(val, arr_byte_order, "bswap_arr_load") - - def _gep_and_Load_member(self, Gen: LlvmCodeGenerator, ObjVal: ir.Value, offset: int | None, AttrName: str, ClassName: str, ST: ir.Type | None = None) -> ir.Value | None: - """从结构体指针通过 GEP 取成员,处理 array/struct pointer/class_members 特殊情况""" - if offset is None: - return None - if isinstance(ObjVal.type, ir.PointerType): - pointee: Any = ObjVal.type.pointee - if isinstance(pointee, ir.IdentifiedStructType) and pointee.elements is not None and offset >= len(pointee.elements): - # sha1 冲突修复:pointee 字段不足时,尝试 bitcast 到 ST(更完整的版本) - if ST is not None and isinstance(ST, ir.IdentifiedStructType) and ST.elements is not None and offset < len(ST.elements): - ObjVal = Gen.builder.bitcast(ObjVal, ir.PointerType(ST), name=f"cast_gep_{ClassName}") - else: - return None - MemberPtr: Any = Gen.builder.gep(ObjVal, [ir.Constant(ir.IntType(32), 0), ir.Constant(ir.IntType(32), offset)], name=AttrName) - if isinstance(MemberPtr.type, ir.PointerType) and isinstance(MemberPtr.type.pointee, ir.ArrayType): - return MemberPtr - if isinstance(MemberPtr.type, ir.PointerType) and isinstance(MemberPtr.type.pointee, ir.IdentifiedStructType): - return MemberPtr - # 检查 pointer-to-pointer 且实际元素是 ArrayType - if isinstance(MemberPtr.type, ir.PointerType) and isinstance(MemberPtr.type.pointee, ir.PointerType): - actual_elem_type: Any = None - if ST is not None and isinstance(ST, ir.IdentifiedStructType) and ST.elements is not None and offset < len(ST.elements): - actual_elem_type = ST.elements[offset] - if isinstance(actual_elem_type, ir.ArrayType): - return Gen.builder.bitcast(MemberPtr, ir.PointerType(actual_elem_type), name=f"cast_arr_{AttrName}") - # 检查 class_members 中的 ArrayType - if ClassName in Gen.class_members: - for member_name, member_type in Gen.class_members[ClassName]: - if member_name == AttrName and isinstance(member_type, ir.ArrayType): - return Gen.builder.bitcast(MemberPtr, ir.PointerType(member_type), name=f"cast_arr_{AttrName}") - val: Any = Gen._load(MemberPtr, name=AttrName) - return self._apply_bswap_on_Load(val, ClassName, AttrName) - - def _try_Load_struct_from_stub(self, Gen: LlvmCodeGenerator, ClassName: str) -> tuple[ir.Type | None, bool]: - """尝试从 stub 加载结构体定义,返回 (struct_type, ok)""" - if ClassName not in Gen.structs: - return None, False - st: Any = Gen.structs[ClassName] - if isinstance(st, ir.IdentifiedStructType) and (st.elements is None or len(st.elements) == 0): - self.Trans.ImportHandler._TryLoadStructFromStub(ClassName, Gen) - st = Gen.structs.get(ClassName, st) - if isinstance(st, ir.IdentifiedStructType) and (st.elements is None or len(st.elements) == 0): - return st, False - return st, True - - def _find_specialized_struct_with_body(self, Gen: LlvmCodeGenerator, opaque_struct: Any) -> tuple[ir.IdentifiedStructType, str] | None: - """查找 opaque 非特化泛型结构体的特化版本(如 GSList -> GSList[Param])。 - 所有特化版本布局相同,可用于 GEP 偏移计算。""" - if not isinstance(opaque_struct, ir.IdentifiedStructType): - return None - base_name: str = opaque_struct.name or "" - short_name: str = base_name.split('.')[-1] if '.' in base_name else base_name - if not short_name or '[' in short_name: - return None - for CN2, ST2 in Gen.structs.items(): - if not isinstance(ST2, ir.IdentifiedStructType): - continue - if ST2 is opaque_struct: - continue - if ST2.elements is None: - continue - st2_short: str = (ST2.name or "").split('.')[-1] if '.' in (ST2.name or "") else (ST2.name or "") - if st2_short.startswith(short_name + '['): - return (ST2, CN2) - return None - - def _try_access_opaque_generic_member(self, Gen: LlvmCodeGenerator, ObjVal: ir.Value, opaque_struct: Any, Node: ast.Attribute, orig_CN: str) -> ir.Value | None: - """通过特化版本访问 opaque 非特化泛型结构体成员。""" - spec_result: Any = self._find_specialized_struct_with_body(Gen, opaque_struct) - if spec_result is None: - return None - spec_st: ir.IdentifiedStructType - spec_CN: str - spec_st, spec_CN = spec_result - CastedObj: Any = Gen.builder.bitcast(ObjVal, ir.PointerType(spec_st), name=f"cast_spec_{orig_CN}") - for lookup_CN in (spec_CN, orig_CN): - bitfield_offsets: Any = Gen.class_member_bitoffsets.get(lookup_CN, {}) - if Node.attr in bitfield_offsets: - return self._load_bitfield_member(CastedObj, lookup_CN, Node.attr) - offset: int | None = Gen._get_member_offset(Node.attr, lookup_CN) - if offset is not None: - return self._gep_and_Load_member(Gen, CastedObj, offset, Node.attr, lookup_CN, spec_st) - return None - - def _make_define_constant(self, Gen: LlvmCodeGenerator, val: int | float | str) -> ir.Value | None: - """将 CDefine 值转为 LLVM 常量""" - if isinstance(val, int): - if abs(val) > 2147483647: - return ir.Constant(ir.IntType(64), val) - return ir.Constant(ir.IntType(32), val) - elif isinstance(val, float): - return ir.Constant(ir.DoubleType(), val) - elif isinstance(val, str): - return Gen._create_string_global(val) - return None - - def _lookup_cdefine(self, Gen: LlvmCodeGenerator, VarName: str, AttrName: str) -> ir.Value | None: - """在符号表和模块中查找 CDefine 常量值""" - imported_modules: Any = getattr(self.Trans, '_ImportedModules', None) - if not imported_modules: - return None - PossibleKeys: list[str] = [f"{VarName}.{AttrName}", AttrName] - for mod_name in imported_modules: - if mod_name.endswith(f".{VarName}") or mod_name == VarName: - key: str = f"{mod_name}.{AttrName}" - if key not in PossibleKeys: - PossibleKeys.append(key) - for lookup_key in PossibleKeys: - SymInfo: Any = self.Trans.SymbolTable.lookup(lookup_key) - if SymInfo and SymInfo.IsDefine and SymInfo.DefineValue is not None: - return self._make_define_constant(Gen, SymInfo.DefineValue) - # 也检查 _define_constants - define_constants: Any = getattr(Gen, '_define_constants', {}) - for key in (f"{VarName}.{AttrName}", AttrName): - if key in define_constants: - return self._make_define_constant(Gen, define_constants[key]) - return None - - def _lookup_module_global(self, Gen: LlvmCodeGenerator, VarName: str, AttrName: str) -> ir.Value | None: - """在模块全局变量中查找 import 的属性""" - imported_modules: Any = getattr(self.Trans, '_ImportedModules', None) - if not imported_modules: - return None - resolved_mod: str = self.Trans.SymbolTable.resolve_alias(VarName) - if VarName not in imported_modules and resolved_mod not in imported_modules: - return None - PossibleKeys: list[str] = [f"{VarName}.{AttrName}", AttrName] - for mod_name in imported_modules: - if mod_name.endswith(f".{VarName}") or mod_name == VarName: - key: str = f"{mod_name}.{AttrName}" - if key not in PossibleKeys: - PossibleKeys.append(key) - for key in PossibleKeys: - if key in Gen.module.globals: - GVar: Any = Gen.module.globals[key] - if isinstance(GVar, ir.Function): - return GVar - if isinstance(GVar.type, ir.PointerType) and isinstance(GVar.type.pointee, (ir.IdentifiedStructType, ir.LiteralStructType, ir.ArrayType)): - return GVar - return Gen._load(GVar, name=AttrName) - # SHA1 前缀查找 - ModuleSha1Map: Any = getattr(Gen, 'ModuleSha1Map', {}) - sha1_candidates: list[str] = [VarName, resolved_mod] - for mod_name in imported_modules: - if mod_name.endswith(f".{VarName}") or mod_name == VarName: - if mod_name not in sha1_candidates: - sha1_candidates.append(mod_name) - for cand in sha1_candidates: - sha1: str | None = ModuleSha1Map.get(cand) - if sha1: - prefixed: str = f"{sha1}.{AttrName}" - if prefixed in Gen.module.globals: - GVar2: Any = Gen.module.globals[prefixed] - if isinstance(GVar2, ir.Function): - return GVar2 - if isinstance(GVar2.type, ir.PointerType) and isinstance(GVar2.type.pointee, (ir.IdentifiedStructType, ir.LiteralStructType, ir.ArrayType)): - return GVar2 - return Gen._load(GVar2, name=AttrName) - if AttrName in Gen.module.globals: - gv: Any = Gen.module.globals[AttrName] - if AttrName in Gen.variables and Gen.variables[AttrName] is None: - str_gv_name: str = AttrName + '_str' - if str_gv_name in Gen.module.globals: - str_gv: Any = Gen.module.globals[str_gv_name] - return Gen.builder.gep(str_gv, [ir.Constant(ir.IntType(32), 0), ir.Constant(ir.IntType(32), 0)], name=f"{AttrName}_str_ptr") - return Gen.builder.load(gv, name=AttrName) - return None - - def _resolve_var_classname(self, Gen: LlvmCodeGenerator, VarName: str) -> str | None: - """根据变量名解析其结构体类名""" - ClassName: str | None = Gen.var_struct_class.get(VarName) - if not ClassName and getattr(Gen, 'global_struct_class', None): - ClassName = Gen.global_struct_class.get(VarName) - if ClassName: - Gen.var_struct_class[VarName] = ClassName - if not ClassName and VarName in Gen.module.globals: - GVar: Any = Gen.module.globals[VarName] - if isinstance(GVar.type, ir.PointerType) and isinstance(GVar.type.pointee, (ir.IdentifiedStructType, ir.LiteralStructType)): - found: Any = Gen.find_struct_by_pointee(GVar.type.pointee) - if found: - ClassName = found[0] - Gen.var_struct_class[VarName] = ClassName - if getattr(Gen, 'global_struct_class', None): - Gen.global_struct_class[VarName] = ClassName - if not ClassName and VarName in Gen.variables: - VarPtr: Any = Gen.variables[VarName] - if VarPtr is not None and isinstance(VarPtr.type, ir.PointerType): - pointee: Any = VarPtr.type.pointee - if isinstance(pointee, ir.PointerType): - pointee = pointee.pointee - found = Gen.find_struct_by_pointee(pointee) - if found: - ClassName = found[0] - return ClassName - - def _check_struct_match(self, Gen: LlvmCodeGenerator, ObjVal: ir.Value, ClassName: str) -> bool: - """检查 ObjVal 是否指向 ClassName 对应的结构体""" - if ClassName not in Gen.structs: - return False - if isinstance(ObjVal.type, ir.PointerType): - ST: Any = Gen.structs[ClassName] - if ObjVal.type.pointee == ST: - return True - if isinstance(ObjVal.type.pointee, ir.IdentifiedStructType) and isinstance(ST, ir.IdentifiedStructType): - # 精确名匹配(含 sha1 前缀)或短名匹配(去掉 sha1 前缀) - if ObjVal.type.pointee.name == ST.name: - return True - if Gen._extract_short_name(ObjVal.type.pointee.name) == Gen._extract_short_name(ST.name): - return True - return False - - # ========== _HandleAttributeLlvm 子方法 ========== - - def _handle_attr_self(self, Node: ast.Attribute, VarName: str) -> ir.Value | None: - """处理 self.xxx 属性访问""" - Gen: LlvmCodeGenerator = self.Trans.LlvmGen - ClassName: str | None = self.Trans._CurrentCpythonObjectClass - if not ClassName: - return None - # 检查 property getter - PropKey: str = f'{ClassName}.{Node.attr}' - PropInfo: Any = self.Trans.SymbolTable.lookup(PropKey) - if PropInfo and PropInfo.MetaList and FuncMeta.PROPERTY_GETTER in PropInfo.MetaList: - SelfVar: Any = Gen._get_var_ptr('self') - if SelfVar: - SelfPtr: Any = Gen._load(SelfVar, name="self") - GetterFunc: Any = Gen._get_function(PropKey) - if GetterFunc and SelfPtr: - return Gen.builder.call(GetterFunc, [SelfPtr], name=f"prop_{PropKey}") - offset: int | None = Gen._get_member_offset(Node.attr, ClassName) - SelfVar = Gen._get_var_ptr('self') - if not SelfVar: - return None - SelfPtr = Gen._load(SelfVar, name="self") - if not isinstance(SelfPtr.type, ir.PointerType): - return None - pointee: Any = SelfPtr.type.pointee - if isinstance(pointee, ir.IdentifiedStructType) and pointee.elements is None: - # 修复 Bug 4/5:NoVTable fix 清除 struct elements 后,_handle_attr_self - # 必须主动从 stub 文件重新加载 struct 定义,否则 self.Trans 等属性访问 - # 会因 pointee.elements 为 None 返回 None,导致 AnnAssign/Store 不生成 IR。 - # 与 _handle_attr_nested 的处理保持一致。 - # 策略:先用 ClassName 直接尝试加载;若失败,遍历 Gen.structs 按名字匹配 - # 找到对应的 dict key(可能是 sha1 前缀形式),再用该 key 加载。 - loaded: bool = False - for TryCN in (ClassName,): - st, ok = self._try_Load_struct_from_stub(Gen, TryCN) - if ok and isinstance(st, ir.IdentifiedStructType) and st.elements is not None: - pointee = st - loaded = True - break - if not loaded: - for CN2, ST2 in Gen.structs.items(): - if isinstance(ST2, ir.IdentifiedStructType) and ST2.name == pointee.name: - st2, ok2 = self._try_Load_struct_from_stub(Gen, CN2) - if ok2 and isinstance(st2, ir.IdentifiedStructType) and st2.elements is not None: - pointee = st2 - loaded = True - break - if not loaded: - # 最后回退:在 Gen.structs 中查找同名非 opaque 版本 - for CN2, ST2 in Gen.structs.items(): - if isinstance(ST2, ir.IdentifiedStructType) and ST2.name == pointee.name and ST2.elements is not None: - pointee = ST2 - break - # 当 pointee 元素数不足以容纳 offset 时(常见于跨模块继承:子类 struct - # 在父类 class_members 加载前生成,只有部分继承字段),从 Gen.structs - # 中查找同名且元素数更多的完整定义。 - if (isinstance(pointee, ir.IdentifiedStructType) - and offset is not None - and pointee.elements is not None - and offset >= len(pointee.elements)): - _cur_count: int = len(pointee.elements) - for CN2, ST2 in Gen.structs.items(): - if (isinstance(ST2, ir.IdentifiedStructType) - and ST2.name == pointee.name - and ST2.elements is not None - and len(ST2.elements) > _cur_count - and offset < len(ST2.elements)): - pointee = ST2 - break - if isinstance(pointee, ir.IdentifiedStructType) and pointee.elements is not None and offset is not None and offset < len(pointee.elements): - if isinstance(pointee.elements[offset], ir.VoidType): - return None - return self._gep_and_Load_member(Gen, SelfPtr, offset, Node.attr, ClassName, pointee) - DynamicVarName: str = f"self.{Node.attr}" - if DynamicVarName in Gen.variables: - return Gen._load(Gen.variables[DynamicVarName], name=Node.attr) - return None - - def _handle_attr_enum(self, Node: ast.Attribute, VarName: str) -> ir.Value | None: - """处理枚举成员访问 (VarName 是枚举类型名)""" - SymInfo: Any = self.Trans.SymbolTable.lookup(VarName) - if not SymInfo or not SymInfo.IsEnum: - return None - # 优先用带前缀的 key 查找(避免短名被同名函数/变量覆盖) - FullKey: str = f"{VarName}.{Node.attr}" - MemberInfo: Any = self.Trans.SymbolTable.lookup(FullKey) - if not MemberInfo or not MemberInfo.IsEnumMember or MemberInfo.EnumName != VarName: - # 回退到短名查找 - MemberInfo = self.Trans.SymbolTable.lookup(Node.attr) - if not MemberInfo or not MemberInfo.IsEnumMember or MemberInfo.EnumName != VarName: - # 最后遍历符号表 - for key, info in self.Trans.SymbolTable.items(): - if info.IsEnumMember and info.EnumName == VarName and key == Node.attr: - if isinstance(info.value, int): - return ir.Constant(ir.IntType(32), info.value) - return None - if isinstance(MemberInfo.value, int): - return ir.Constant(ir.IntType(32), MemberInfo.value) - return None - - def _handle_attr_name(self, Node: ast.Attribute, VarName: str) -> ir.Value | None: - """处理 x.attr 形式 (x 是普通 Name)""" - Gen: LlvmCodeGenerator = self.Trans.LlvmGen - AttrName: str = Node.attr - - # __doc__ 魔法字符串:函数/结构体的 docstring - if AttrName == '__doc__': - doc_ptr: ir.Value | None = Gen._get_doc_ptr(VarName) - if doc_ptr is not None: - return doc_ptr - - # 先尝试枚举成员 - result: Any = self._handle_attr_enum(Node, VarName) - if result is not None: - return result - - # 尝试 CDefine 常量 - result = self._lookup_cdefine(Gen, VarName, AttrName) - if result is not None: - return result - - # 尝试 import 模块全局变量 - result = self._lookup_module_global(Gen, VarName, AttrName) - if result is not None: - return result - - # FakeDuck: 检查是否有影子结构体 a__meta__ (str 变量的 per-instance 字段存储) - # 当 a 是 str 变量时, a 本身是 char*, 但 a__meta__ 存储了 __data__/__mbuddy__ 等字段 - # 直接通过 a.__field__ 访问影子结构体字段 (语法糖) - _fd_meta_name: str = f"{VarName}__meta__" - if _fd_meta_name in Gen.variables and '_str' in Gen.structs: - _fd_offset = Gen._get_member_offset(AttrName, '_str') - if _fd_offset is not None: - _fd_meta_ptr: ir.Value = Gen.variables[_fd_meta_name] - _fd_field_ptr: ir.Value = Gen.builder.gep(_fd_meta_ptr, [ir.Constant(ir.IntType(32), 0), ir.Constant(ir.IntType(32), _fd_offset)], name=f"{VarName}_{AttrName}_ptr") - return Gen._load(_fd_field_ptr, name=f"{VarName}_{AttrName}_val") - - # 解析结构体类名:若 VarName 是结构体变量,优先走结构体字段访问路径 - # 避免结构体字段名(如 stdout)与全局变量名冲突时被误解析为全局变量 - ClassName: str | None = self._resolve_var_classname(Gen, VarName) - - # 尝试 attr 直接作为全局变量(仅当 VarName 不是结构体变量时) - if not ClassName and AttrName in Gen.module.globals: - gv: Any = Gen.module.globals[AttrName] - if AttrName in Gen.variables and Gen.variables[AttrName] is None: - str_gv_name: str = AttrName + '_str' - if str_gv_name in Gen.module.globals: - str_gv: Any = Gen.module.globals[str_gv_name] - return Gen.builder.gep(str_gv, [ir.Constant(ir.IntType(32), 0), ir.Constant(ir.IntType(32), 0)], name=f"{AttrName}_str_ptr") - return Gen.builder.load(gv, name=AttrName) - - if not ClassName: - return None - - # 检查 property getter - PropKey: str = f'{ClassName}.{AttrName}' - PropInfo: Any = self.Trans.SymbolTable.lookup(PropKey) - if PropInfo and PropInfo.MetaList and FuncMeta.PROPERTY_GETTER in PropInfo.MetaList: - ObjVal: Any = self.HandleExprLlvm(Node.value) - GetterFunc: Any = Gen._get_function(PropKey) - if GetterFunc and ObjVal: - if isinstance(ObjVal.type, ir.PointerType) and isinstance(ObjVal.type.pointee, ir.PointerType): - ObjVal = Gen._load(ObjVal, name=f"Load_{VarName}") - return Gen.builder.call(GetterFunc, [ObjVal], name=f"prop_{PropKey}") - - # 获取类型信息 - TypeInfo: Any = self.Trans.SymbolTable.lookup(ClassName) - IsUnion: bool = TypeInfo.IsUnion if TypeInfo else False - IsCenum: bool = TypeInfo.IsEnum if TypeInfo else False - IsRenum: bool = TypeInfo.IsRenum if TypeInfo else False - - # REnum 处理 - if IsRenum: - if AttrName == 'tag': - ObjVal = self.HandleExprLlvm(Node.value) - if ObjVal: - if isinstance(ObjVal.type, ir.PointerType) and isinstance(ObjVal.type.pointee, ir.PointerType): - ObjVal = Gen._load(ObjVal, name=f"Load_{VarName}") - tag_ptr: Any = Gen.builder.gep(ObjVal, [ir.Constant(ir.IntType(32), 0), ir.Constant(ir.IntType(32), 0)], name="tag_ptr") - return Gen._load(tag_ptr, name="tag_val") - NestedStructName: str = f"{ClassName}_{AttrName}" - if NestedStructName in Gen.structs: - NestedStructType: Any = Gen.structs[NestedStructName] - ObjVal = self.HandleExprLlvm(Node.value) - if ObjVal: - if isinstance(ObjVal.type, ir.PointerType) and isinstance(ObjVal.type.pointee, ir.PointerType): - ObjVal = Gen._load(ObjVal, name=f"Load_{VarName}") - return Gen.builder.bitcast(ObjVal, ir.PointerType(NestedStructType), name=f"cast_{NestedStructName}") - - # CEnum 处理 - if IsCenum: - for qname in (f"{ClassName}.{AttrName}", f"{ClassName}_{AttrName}"): - info: Any = self.Trans.SymbolTable.lookup(qname) - if info and info.IsEnumMember and isinstance(info.value, int): - return ir.Constant(ir.IntType(32), info.value) - for key, info in self.Trans.SymbolTable.items(): - if key == AttrName: - if info.IsEnumMember and info.EnumName == ClassName: - if isinstance(info.value, int): - return ir.Constant(ir.IntType(32), info.value) - break - - # CUnion 处理 - if IsUnion: - NestedStructName = f"{ClassName}_{AttrName}" - if NestedStructName in Gen.structs: - NestedStructType = Gen.structs[NestedStructName] - ObjVal = self.HandleExprLlvm(Node.value) - if ObjVal: - if isinstance(ObjVal.type, ir.PointerType) and isinstance(ObjVal.type.pointee, ir.PointerType): - ObjVal = Gen._load(ObjVal, name=f"Load_{VarName}") - return Gen.builder.bitcast(ObjVal, ir.PointerType(NestedStructType), name=f"cast_{NestedStructName}") - - # 普通结构体成员访问 - ObjVal = self.HandleExprLlvm(Node.value) - if not ObjVal: - return None - # char* → struct* cast - if self._is_char_pointer(ObjVal): - if ClassName in Gen.structs: - ObjVal = Gen.builder.bitcast(ObjVal, ir.PointerType(Gen.structs[ClassName]), name=f"cast_{ClassName}") - # 二级指针解引用 - if isinstance(ObjVal.type, ir.PointerType) and isinstance(ObjVal.type.pointee, ir.PointerType): - ObjVal = Gen._load(ObjVal, name=f"Load_{VarName}") - - # 检查结构体匹配 - struct_match: bool = self._check_struct_match(Gen, ObjVal, ClassName) - if not struct_match and ClassName and VarName: - if VarName in Gen.var_struct_class: - CN: str = Gen.var_struct_class[VarName] - if CN != ClassName and CN in Gen.structs: - ClassName = CN - struct_match = self._check_struct_match(Gen, ObjVal, ClassName) - # 最终回退:var_struct_class 可能被前一个函数污染(如 cur 在不同函数中 - # 分别是 Line/Param/BasicBlock),通过 ObjVal 的实际 pointee 类型恢复正确类名 - if not struct_match and isinstance(ObjVal.type, ir.PointerType): - found: Any = Gen.find_struct_by_pointee(ObjVal.type.pointee) - if found: - ClassName = found[0] - struct_match = True - if VarName: - Gen.var_struct_class[VarName] = ClassName - elif isinstance(ObjVal.type.pointee, ir.IdentifiedStructType): - # sha1 冲突 fallback:find_struct_by_pointee 因 sha1 前缀不匹配失败时, - # 用短名匹配,优先选字段最多的完整版本 - pointee_short: str = Gen._extract_short_name(ObjVal.type.pointee.name) - best_elem_count: int = 0 - for CN, ST in Gen.structs.items(): - if isinstance(ST, ir.IdentifiedStructType): - st_short: str = Gen._extract_short_name(ST.name) - if st_short == pointee_short: - elem_count: int = len(ST.elements) if ST.elements else 0 - if elem_count > best_elem_count: - ClassName = CN - best_elem_count = elem_count - struct_match = True - if struct_match and VarName: - Gen.var_struct_class[VarName] = ClassName - if not struct_match: - return None - - st: Any - ok: bool - st, ok = self._try_Load_struct_from_stub(Gen, ClassName) - if not ok: - return None - - # bitfield 处理 - bitfield_offsets: Any = Gen.class_member_bitoffsets.get(ClassName, {}) - bitfields: Any = Gen.class_member_bitfields.get(ClassName, {}) - if AttrName in bitfield_offsets and bitfields.get(AttrName, 0) > 0: - return self._load_bitfield_member(ObjVal, ClassName, AttrName) - if AttrName in bitfields and bitfields[AttrName] > 0: - if ClassName not in Gen.class_member_bitoffsets: - Gen.class_member_bitoffsets[ClassName] = {} - if AttrName not in Gen.class_member_bitoffsets[ClassName]: - bo: int = 0 - for bf_name, bf_width in bitfields.items(): - if bf_name == AttrName: - break - bo += bf_width - Gen.class_member_bitoffsets[ClassName][AttrName] = bo - return self._load_bitfield_member(ObjVal, ClassName, AttrName) - - offset = Gen._get_member_offset(AttrName, ClassName) - # 检查 offset 是否超出实际结构体 - if isinstance(ObjVal.type, ir.PointerType): - actual_pointee: Any = ObjVal.type.pointee - if isinstance(actual_pointee, ir.IdentifiedStructType): - actual_elems: Any = actual_pointee.elements - if actual_elems is not None and offset is not None and offset >= len(actual_elems): - self.Trans.ImportHandler._TryLoadStructFromStub(ClassName, Gen) - actual_elems = actual_pointee.elements - if actual_elems is not None and offset >= len(actual_elems): - # sha1 冲突修复:ObjVal 的 pointee 可能是字段不全的版本(如 2 字段 Function), - # 而 st(来自 _try_Load_struct_from_stub)可能是字段完整的版本。 - # bitcast ObjVal 到 st 的类型,使 GEP 能正确访问完整字段。 - if st is not None and isinstance(st, ir.IdentifiedStructType) and st.elements is not None and offset < len(st.elements): - ObjVal = Gen.builder.bitcast(ObjVal, ir.PointerType(st), name=f"cast_load_{ClassName}") - else: - return None - result = self._gep_and_Load_member(Gen, ObjVal, offset, AttrName, ClassName, st) - return result - - def _handle_attr_nested(self, Node: ast.Attribute) -> ir.Value | None: - """处理 a.b.c 嵌套属性访问""" - Gen: LlvmCodeGenerator = self.Trans.LlvmGen - if isinstance(Node.value.value, ast.Name): - ParentVarName: str = Node.value.value.id - ParentAttrName: str = Node.value.attr - # __doc__ 魔法字符串:ClassName.method.__doc__ 或 module.ClassName.__doc__ - if Node.attr == '__doc__': - full_symbol: str = f"{ParentVarName}.{ParentAttrName}" - doc_ptr: ir.Value | None = Gen._get_doc_ptr(full_symbol) - if doc_ptr is not None: - return doc_ptr - # 回退:module.ClassName.__doc__ → 仅用 ClassName 查找 - doc_ptr = Gen._get_doc_ptr(ParentAttrName) - if doc_ptr is not None: - return doc_ptr - enum_result: Any = self._try_resolve_cross_module_enum(ParentVarName, ParentAttrName, Node.attr) - if enum_result is not None: - return enum_result - # 尝试跨模块子模块全局变量解析: a.b.c 其中 a.b 是已知子模块, c 是该模块的全局变量 - imported_modules: Any = getattr(self.Trans, '_ImportedModules', None) - if imported_modules: - full_ModulePath: str = f"{ParentVarName}.{ParentAttrName}" - if full_ModulePath in imported_modules: - result: Any = self._lookup_module_global(Gen, full_ModulePath, Node.attr) - if result is not None: - return result - elif isinstance(Node.value.value, ast.Attribute) and isinstance(Node.value.value.value, ast.Name): - # 三层嵌套:module.ClassName.method.__doc__ - if Node.attr == '__doc__': - ModuleName: str = Node.value.value.value.id - ClassName2: str = Node.value.value.attr - MethodName: str = Node.value.attr - FullSymbol3: str = f"{ModuleName}.{ClassName2}.{MethodName}" - doc_ptr3: ir.Value | None = Gen._get_doc_ptr(FullSymbol3) - if doc_ptr3 is not None: - return doc_ptr3 - # 回退:ClassName.method.__doc__ - doc_ptr3 = Gen._get_doc_ptr(f"{ClassName2}.{MethodName}") - if doc_ptr3 is not None: - return doc_ptr3 - # 三层嵌套:module.submodule.EnumClass.MEMBER - ModuleAlias3: str = f"{Node.value.value.value.id}.{Node.value.value.attr}" - EnumClassName3: str = Node.value.attr - enum_result3: Any = self._try_resolve_cross_module_enum(ModuleAlias3, EnumClassName3, Node.attr) - if enum_result3 is not None: - return enum_result3 - cdefine_result: Any = self._try_resolve_nested_cdefine(Node) - if cdefine_result is not None: - return cdefine_result - ObjVal: Any = self.HandleExprLlvm(Node.value) - if not ObjVal or not isinstance(ObjVal.type, ir.PointerType): - return None - pointee: Any = ObjVal.type.pointee - - # char* → struct* cast + 成员访问 - if isinstance(pointee, ir.IntType) and pointee.width == 8: - AttrClassName: str | None = self._get_attr_class(Node.value, Gen) - if AttrClassName and AttrClassName in Gen.structs: - st: Any - ok: bool - st, ok = self._try_Load_struct_from_stub(Gen, AttrClassName) - if not isinstance(st, ir.IdentifiedStructType) or st.elements is None: - return None - CastedObj: Any = Gen.builder.bitcast(ObjVal, ir.PointerType(st), name=f"cast_{AttrClassName}") - offset: int | None = Gen._get_member_offset(Node.attr, AttrClassName) - if offset is None: - return None - if offset < len(st.elements) and isinstance(st.elements[offset], ir.VoidType): - return None - return self._gep_and_Load_member(Gen, CastedObj, offset, Node.attr, AttrClassName, st) - - # 已知结构体类型 → 直接成员访问 - if isinstance(pointee, (ir.LiteralStructType, ir.IdentifiedStructType)): - for CN, ST in Gen.structs.items(): - if pointee == ST or (isinstance(pointee, ir.IdentifiedStructType) and isinstance(ST, ir.IdentifiedStructType) and pointee.name == ST.name): - st, ok = self._try_Load_struct_from_stub(Gen, CN) - if not isinstance(st, ir.IdentifiedStructType) or st.elements is None: - spec_val: Any = self._try_access_opaque_generic_member(Gen, ObjVal, st if isinstance(st, ir.IdentifiedStructType) else pointee, Node, CN) - if spec_val is not None: - return spec_val - break - bitfield_offsets: Any = Gen.class_member_bitoffsets.get(CN, {}) - if Node.attr in bitfield_offsets: - return self._load_bitfield_member(ObjVal, CN, Node.attr) - offset = Gen._get_member_offset(Node.attr, CN) - if offset is None: - break - return self._gep_and_Load_member(Gen, ObjVal, offset, Node.attr, CN, st) - return None - - def _handle_attr_call_result(self, Node: ast.Attribute) -> ir.Value | None: - """处理 func().attr 属性访问""" - Gen: LlvmCodeGenerator = self.Trans.LlvmGen - # Check if this is c.Deref(...) — we need the pointer, not the Loaded value - ObjVal: Any = None - is_cderef: bool = (isinstance(Node.value, ast.Call) and - isinstance(Node.value.func, ast.Attribute) and - isinstance(Node.value.func.value, ast.Name) and - Node.value.func.value.id == 'c' and - Node.value.func.attr == 'Deref' and - Node.value.args) - if is_cderef: - deref_arg: ast.expr = Node.value.args[0] - inner_val: Any = self.HandleExprLlvm(deref_arg) - if inner_val and isinstance(inner_val.type, ir.PointerType): - if isinstance(inner_val.type.pointee, ir.PointerType): - ObjVal = Gen._load(inner_val, name="deref_load_ptr") - else: - ObjVal = inner_val - if ObjVal is None: - ObjVal = self.HandleExprLlvm(Node.value) - if not ObjVal or not isinstance(ObjVal.type, ir.PointerType): - return None - pointee: Any = ObjVal.type.pointee - if isinstance(pointee, ir.PointerType): - ObjVal = Gen._load(ObjVal, name="load_ptr_for_attr") - pointee = ObjVal.type.pointee - found: Any = Gen.find_struct_by_pointee(pointee) - if not found: - return None - CN: str - ST: Any - CN, ST = found - st: Any - ok: bool - st, ok = self._try_Load_struct_from_stub(Gen, CN) - if not isinstance(st, ir.IdentifiedStructType) or st.elements is None: - spec_val: Any = self._try_access_opaque_generic_member(Gen, ObjVal, st if isinstance(st, ir.IdentifiedStructType) else pointee, Node, CN) - if spec_val is not None: - return spec_val - return None - bitfield_offsets: Any = Gen.class_member_bitoffsets.get(CN, {}) - if Node.attr in bitfield_offsets: - return self._load_bitfield_member(ObjVal, CN, Node.attr) - offset: int | None = Gen._get_member_offset(Node.attr, CN) - if offset is None: - return None - return self._gep_and_Load_member(Gen, ObjVal, offset, Node.attr, CN, st) - - def _handle_attr_subscript_result(self, Node: ast.Attribute) -> ir.Value | None: - """处理 arr[i].attr 属性访问""" - Gen: LlvmCodeGenerator = self.Trans.LlvmGen - ObjVal: Any = self.HandleExprLlvm(Node.value) - if not ObjVal or not isinstance(ObjVal.type, ir.PointerType): - return None - pointee: Any = ObjVal.type.pointee - if not isinstance(pointee, (ir.LiteralStructType, ir.IdentifiedStructType)): - return None - found: Any = Gen.find_struct_by_pointee(pointee) - if not found: - return None - CN: str - ST: Any - CN, ST = found - st: Any - ok: bool - st, ok = self._try_Load_struct_from_stub(Gen, CN) - if not isinstance(st, ir.IdentifiedStructType) or st.elements is None: - spec_val: Any = self._try_access_opaque_generic_member(Gen, ObjVal, st if isinstance(st, ir.IdentifiedStructType) else pointee, Node, CN) - if spec_val is not None: - return spec_val - return None - offset: int | None = Gen._get_member_offset(Node.attr, CN) - if offset is None: - return None - return self._gep_and_Load_member(Gen, ObjVal, offset, Node.attr, CN, st) - - def _handle_attr_fallback(self, Node: ast.Attribute) -> ir.Value | None: - """兜底:对任意值尝试指针解引用后查找结构体成员""" - Gen: LlvmCodeGenerator = self.Trans.LlvmGen - ObjVal: Any = self.HandleExprLlvm(Node.value) - if not ObjVal or not isinstance(ObjVal.type, ir.PointerType): - return None - pointee: Any = ObjVal.type.pointee - if isinstance(pointee, ir.PointerType): - ObjVal = Gen._load(ObjVal, name="load_ptr_for_attr_fallback") - pointee = ObjVal.type.pointee - if not isinstance(pointee, (ir.IdentifiedStructType, ir.LiteralStructType)): - return None - found: Any = Gen.find_struct_by_pointee(pointee) - if not found: - return None - CN: str - ST: Any - CN, ST = found - st: Any - ok: bool - st, ok = self._try_Load_struct_from_stub(Gen, CN) - if not isinstance(st, ir.IdentifiedStructType) or st.elements is None: - spec_val: Any = self._try_access_opaque_generic_member(Gen, ObjVal, st if isinstance(st, ir.IdentifiedStructType) else pointee, Node, CN) - if spec_val is not None: - return spec_val - return None - offset: int | None = Gen._get_member_offset(Node.attr, CN) - if offset is None: - return None - return self._gep_and_Load_member(Gen, ObjVal, offset, Node.attr, CN, st) - - # ========== 主入口 ========== - - def _HandleAttributeLlvm(self, Node: ast.Attribute) -> ir.Value | None: - Gen: LlvmCodeGenerator = self.Trans.LlvmGen - - if isinstance(Node.value, ast.Name): - VarName: str = Node.value.id - # 处理 t/c import 的别名重定向 - t_c_imported: Any = getattr(self.Trans, '_t_c_imported_names', {}) - if VarName != 'self' and VarName in t_c_imported: - src_module: str - src_name: str - src_module, src_name = t_c_imported[VarName] - virtual_attr: ast.Attribute = ast.Attribute( - value=ast.Name(id=src_module, ctx=ast.Load()), - attr=src_name, ctx=ast.Load() - ) - ast.copy_location(virtual_attr, Node) - return self._HandleAttributeLlvm(ast.Attribute( - value=virtual_attr, attr=Node.attr, ctx=ast.Load() - )) - if VarName == 'self': - return self._handle_attr_self(Node, VarName) - return self._handle_attr_name(Node, VarName) - - elif isinstance(Node.value, ast.Attribute): - return self._handle_attr_nested(Node) - - elif isinstance(Node.value, ast.Call): - return self._handle_attr_call_result(Node) - - elif isinstance(Node.value, ast.Subscript): - return self._handle_attr_subscript_result(Node) - - # 兜底 - return self._handle_attr_fallback(Node) - - # ========== HandleSubscript 及其辅助 ========== - - def _HandleSubscriptLlvm(self, Node: ast.Subscript) -> ir.Value | None: - Gen: LlvmCodeGenerator = self.Trans.LlvmGen - # 查询数组元素字节序 - arr_byte_order: str = '' - if isinstance(Node.value, ast.Name) and Node.value.id in Gen.local_var_byteorders: - arr_byte_order = Gen.local_var_byteorders[Node.value.id] - ClassName: str | None = self.Trans.ExprHandler._get_var_class(Node.value, Gen) - if ClassName and Gen._has_function(f'{ClassName}.__getitem__'): - obj_val: Any = self.HandleExprLlvm(Node.value) - idx_val: Any = self.HandleExprLlvm(Node.slice) - if obj_val and idx_val: - # 处理 obj_val 为 i8(整数)的情况:联合类型 | t.CPtr 降级后可能被 load 为 i8 - # 需要先 inttoptr 转换为 i8*,再 bitcast 到目标 struct 指针 - if isinstance(obj_val.type, ir.IntType) and obj_val.type.width == 8: - obj_val = Gen.builder.inttoptr(obj_val, ir.PointerType(ir.IntType(8)), name=f"i8_to_ptr_{ClassName}") - if isinstance(obj_val.type, ir.PointerType) and isinstance(obj_val.type.pointee, ir.IntType) and obj_val.type.pointee.width == 8: - obj_val = Gen.builder.bitcast(obj_val, ir.PointerType(Gen.structs[ClassName]), name=f"cast_{ClassName}") - if isinstance(idx_val.type, ir.IntType) and idx_val.type.width < 64: - idx_val = Gen.builder.zext(idx_val, ir.IntType(64), name="zext_idx") - _getitem_func: Any = Gen._get_function(f'{ClassName}.__getitem__') - # 处理泛型特化类型不匹配:obj_val 可能是通用类型,而函数期望特化类型 - if _getitem_func.ftype.args and _getitem_func.ftype.args[0] != obj_val.type: - _expected_type = _getitem_func.ftype.args[0] - if isinstance(_expected_type, ir.PointerType) and isinstance(obj_val.type, ir.PointerType): - obj_val = Gen.builder.bitcast(obj_val, _expected_type, name=f"cast_{ClassName}_getitem") - result: Any = Gen.builder.call(_getitem_func, [obj_val, idx_val], name=f"call_{ClassName}.__getitem__") - return result - ValueVal: Any = self.HandleExprLlvm(Node.value) - if not ValueVal: - return None - IndexVal: Any = self.HandleExprLlvm(Node.slice) - if not IndexVal: - return None - if isinstance(IndexVal.type, ir.PointerType) and isinstance(IndexVal.type.pointee, ir.IntType) and IndexVal.type.pointee.width == 8: - Loaded_byte: Any = Gen._load(IndexVal, name="Load_char_idx") - IndexVal = Gen.builder.zext(Loaded_byte, ir.IntType(32), name="char_to_int_idx") - if isinstance(ValueVal.type, ir.IntType): - var_ptr: Any = self._get_int_ptr(Node.value) - if var_ptr: - i8_ptr: Any = Gen.builder.bitcast(var_ptr, ir.PointerType(ir.IntType(8)), name="int_to_i8ptr") - if isinstance(IndexVal.type, ir.IntType) and IndexVal.type.width < 64: - IndexVal = Gen.builder.zext(IndexVal, ir.IntType(64), name="zext_int_index") - ptr: Any = Gen.builder.gep(i8_ptr, [IndexVal], name="int_subscript_ptr") - return Gen._load(ptr, name="int_subscript_val") - return None - # 当变量本身是二级指针(如 elem_ptr: T | t.CPtr = AST**), - # 但 HandleExprLlvm 已自动 load 返回 AST*(一级指针), - # 需要检查 Gen.variables 中的原始 alloca 类型, - # 若是二级指针且存储的是结构体指针,应 bitcast ValueVal 为 AST** 后 GEP 再 load, - # 避免 GEP AST 结构体数组返回错误的 AST*(指向存储位置而非实际对象) - if (isinstance(Node.value, ast.Name) - and isinstance(ValueVal.type, ir.PointerType) - and isinstance(ValueVal.type.pointee, (ir.IdentifiedStructType, ir.LiteralStructType))): - VarName: str = Node.value.id - if VarName in Gen.variables and Gen.variables[VarName] is not None: - VarAlloca: ir.Value = Gen.variables[VarName] - if (isinstance(VarAlloca.type, ir.PointerType) - and isinstance(VarAlloca.type.pointee, ir.PointerType)): - # 原始 alloca 是二级指针,ValueVal 是已 load 的一级结构体指针 - # 该指针指向数据缓冲区,缓冲区存储的是 AST* 指针数组, - # 需 bitcast ValueVal 为 AST** 后 GEP 指针数组再 load 出 AST* - PtrToStruct: ir.Type = ValueVal.type.pointee - BaseAsPP: ir.Value = Gen.builder.bitcast(ValueVal, - ir.PointerType(ir.PointerType(PtrToStruct)), name="cast_base_pp_load") - if isinstance(IndexVal.type, ir.IntType) and IndexVal.type.width < 64: - IndexVal = Gen.builder.zext(IndexVal, ir.IntType(64), name="zext_ptr_index_load") - ElemPtrLoad: ir.Value = Gen.builder.gep(BaseAsPP, [IndexVal], name="subscript_pp_load") - return Gen._load(ElemPtrLoad, name="ptr_elem_load") - if isinstance(ValueVal.type, ir.PointerType) and isinstance(ValueVal.type.pointee, ir.PointerType): - if isinstance(IndexVal.type, ir.IntType) and IndexVal.type.width < 64: - IndexVal = Gen.builder.zext(IndexVal, ir.IntType(64), name="zext_ptr_index") - ElemPtr: Any = Gen.builder.gep(ValueVal, [IndexVal], name="subscript") - if isinstance(ValueVal.type.pointee.pointee, ir.IntType) and ValueVal.type.pointee.pointee.width == 8: - return self._load_arr_elem_with_bswap(Gen, ElemPtr, arr_byte_order) - return self._load_arr_elem_with_bswap(Gen, ElemPtr, arr_byte_order) - if isinstance(ValueVal.type, ir.PointerType): - pointee: Any = ValueVal.type.pointee - if isinstance(pointee, ir.ArrayType): - zero: ir.Constant = ir.Constant(ir.IntType(32), 0) - if isinstance(IndexVal.type, ir.IntType) and IndexVal.type.width != 32: - if IndexVal.type.width < 32: - IndexVal = Gen.builder.zext(IndexVal, ir.IntType(32), name="zext_arr_index") - else: - IndexVal = Gen.builder.trunc(IndexVal, ir.IntType(32), name="trunc_arr_index") - ElemPtr = Gen.builder.gep(ValueVal, [zero, IndexVal], name="subscript") - elem_type: Any = pointee.element - if isinstance(elem_type, (ir.IdentifiedStructType, ir.LiteralStructType)): - return ElemPtr - return self._load_arr_elem_with_bswap(Gen, ElemPtr, arr_byte_order) - else: - if isinstance(pointee, ir.IntType) and pointee.width == 8: - elem_class: str | None = self._infer_element_struct_class(Node.value, Gen) - if elem_class and elem_class in Gen.structs: - CastedPtr: Any = Gen.builder.bitcast(ValueVal, ir.PointerType(Gen.structs[elem_class]), name=f"cast_{elem_class}_arr") - if isinstance(IndexVal.type, ir.IntType) and IndexVal.type.width < 64: - IndexVal = Gen.builder.zext(IndexVal, ir.IntType(64), name="zext_arr_index") - ElemPtr = Gen.builder.gep(CastedPtr, [IndexVal], name="subscript") - if isinstance(pointee, ir.IntType): - return self._load_arr_elem_with_bswap(Gen, ElemPtr, arr_byte_order) - return ElemPtr - # 指针到 str/bytes 的变量 (BinOp 注解如 str | t.CPtr) - # elem_ptr 是 i8* 但实际指向 i8* (字符串指针), elem_ptr[0] 应加载 8 字节 - if isinstance(Node.value, ast.Name): - _ptr_elem_flag: bool = (getattr(Gen, 'var_ptr_element', {}).get(Node.value.id, False) - or getattr(Gen, 'global_var_ptr_element', {}).get(Node.value.id, False)) - if _ptr_elem_flag: - CastedPtrPtr: Any = Gen.builder.bitcast(ValueVal, ir.PointerType(ir.PointerType(ir.IntType(8))), name="cast_pp_str") - if isinstance(IndexVal.type, ir.IntType) and IndexVal.type.width < 64: - IndexVal = Gen.builder.zext(IndexVal, ir.IntType(64), name="zext_pp_str_index") - ElemPtr = Gen.builder.gep(CastedPtrPtr, [IndexVal], name="subscript") - return Gen._load(ElemPtr, name="str_ptr_load") - arr_type: Any = self._infer_array_member_type(Node.value, Gen) - if arr_type and isinstance(arr_type, ir.ArrayType): - arr_ptr: Any = Gen.builder.bitcast(ValueVal, ir.PointerType(arr_type), name=f"cast_arr_subscript") - zero = ir.Constant(ir.IntType(32), 0) - if isinstance(IndexVal.type, ir.IntType) and IndexVal.type.width != 32: - if IndexVal.type.width < 32: - IndexVal = Gen.builder.zext(IndexVal, ir.IntType(32), name="zext_arr_index") - else: - IndexVal = Gen.builder.trunc(IndexVal, ir.IntType(32), name="trunc_arr_index") - ElemPtr = Gen.builder.gep(arr_ptr, [zero, IndexVal], name="subscript") - arr_elem_type: Any = arr_type.element - if isinstance(arr_elem_type, (ir.IdentifiedStructType, ir.LiteralStructType)): - return ElemPtr - return self._load_arr_elem_with_bswap(Gen, ElemPtr, arr_byte_order) - ElemPtr = Gen.builder.gep(ValueVal, [IndexVal], name="subscript") - if isinstance(pointee, (ir.IdentifiedStructType, ir.LiteralStructType)): - return ElemPtr - return self._load_arr_elem_with_bswap(Gen, ElemPtr, arr_byte_order) - elif isinstance(ValueVal.type, ir.ArrayType): - zero = ir.Constant(ir.IntType(32), 0) - if isinstance(Node.value, ast.Name): - VarName: str = Node.value.id - if VarName in Gen.variables and Gen.variables[VarName] is not None: - VarPtr: Any = Gen.variables[VarName] - if isinstance(VarPtr.type, ir.PointerType) and isinstance(VarPtr.type.pointee, ir.ArrayType): - if isinstance(IndexVal.type, ir.IntType) and IndexVal.type.width != 32: - if IndexVal.type.width < 32: - IndexVal = Gen.builder.zext(IndexVal, ir.IntType(32), name="zext_arr_index") - else: - IndexVal = Gen.builder.trunc(IndexVal, ir.IntType(32), name="trunc_arr_index") - ElemPtr = Gen.builder.gep(VarPtr, [zero, IndexVal], name="subscript") - var_arr_elem_type: Any = VarPtr.type.pointee.element - if isinstance(var_arr_elem_type, (ir.IdentifiedStructType, ir.LiteralStructType)): - return ElemPtr - return self._load_arr_elem_with_bswap(Gen, ElemPtr, arr_byte_order) - if isinstance(Node.value, ast.Attribute): - AttrPtr: Any = self._get_attr_ptr(Node.value) - if AttrPtr and isinstance(AttrPtr.type, ir.PointerType) and isinstance(AttrPtr.type.pointee, ir.ArrayType): - if isinstance(IndexVal.type, ir.IntType) and IndexVal.type.width != 32: - if IndexVal.type.width < 32: - IndexVal = Gen.builder.zext(IndexVal, ir.IntType(32), name="zext_arr_index") - else: - IndexVal = Gen.builder.trunc(IndexVal, ir.IntType(32), name="trunc_arr_index") - ElemPtr = Gen.builder.gep(AttrPtr, [zero, IndexVal], name="subscript") - attr_arr_elem_type: Any = AttrPtr.type.pointee.element - if isinstance(attr_arr_elem_type, (ir.IdentifiedStructType, ir.LiteralStructType)): - return ElemPtr - return self._load_arr_elem_with_bswap(Gen, ElemPtr, arr_byte_order) - if isinstance(Node.value, ast.Subscript): - InnerPtr: Any = self.HandleSubscriptPtrLlvm(Node.value) - if InnerPtr and isinstance(InnerPtr.type, ir.PointerType): - inner_pointee: Any = InnerPtr.type.pointee - if isinstance(inner_pointee, ir.ArrayType): - if isinstance(IndexVal.type, ir.IntType) and IndexVal.type.width != 32: - if IndexVal.type.width < 32: - IndexVal = Gen.builder.zext(IndexVal, ir.IntType(32), name="zext_arr_index") - else: - IndexVal = Gen.builder.trunc(IndexVal, ir.IntType(32), name="trunc_arr_index") - ElemPtr = Gen.builder.gep(InnerPtr, [zero, IndexVal], name="subscript") - inner_elem_type: Any = inner_pointee.element - if isinstance(inner_elem_type, (ir.IdentifiedStructType, ir.LiteralStructType)): - return ElemPtr - return self._load_arr_elem_with_bswap(Gen, ElemPtr, arr_byte_order) - arr_alloc: Any = Gen._allocaEntry(ValueVal.type, name="arr_subscript_tmp") - Gen._store(ValueVal, arr_alloc) - ElemPtr = Gen.builder.gep(arr_alloc, [zero, IndexVal], name="subscript") - alloc_arr_elem_type: Any = ValueVal.type.element - if isinstance(alloc_arr_elem_type, (ir.IdentifiedStructType, ir.LiteralStructType)): - return ElemPtr - return self._load_arr_elem_with_bswap(Gen, ElemPtr, arr_byte_order) - return None - - def HandleSubscriptPtrLlvm(self, Node: ast.Subscript) -> ir.Value | None: - Gen: LlvmCodeGenerator = self.Trans.LlvmGen - ValueVal: Any = self.HandleExprLlvm(Node.value) - if not ValueVal: - return None - IndexVal: Any = self.HandleExprLlvm(Node.slice) - if not IndexVal: - return None - if isinstance(IndexVal.type, ir.PointerType) and isinstance(IndexVal.type.pointee, ir.IntType) and IndexVal.type.pointee.width == 8: - Loaded_byte: Any = Gen._load(IndexVal, name="Load_char_idx_ptr") - IndexVal = Gen.builder.zext(Loaded_byte, ir.IntType(32), name="char_to_int_idx_ptr") - if isinstance(ValueVal.type, ir.PointerType): - pointee: Any = ValueVal.type.pointee - if isinstance(pointee, ir.ArrayType): - zero: ir.Constant = ir.Constant(ir.IntType(32), 0) - if isinstance(IndexVal.type, ir.IntType) and IndexVal.type.width != 32: - if IndexVal.type.width < 32: - IndexVal = Gen.builder.zext(IndexVal, ir.IntType(32), name="zext_arr_index") - else: - IndexVal = Gen.builder.trunc(IndexVal, ir.IntType(32), name="trunc_arr_index") - ElemPtr: Any = Gen.builder.gep(ValueVal, [zero, IndexVal], name="subscript_ptr") - return ElemPtr - elif isinstance(pointee, ir.PointerType): - if isinstance(IndexVal.type, ir.IntType) and IndexVal.type.width < 64: - IndexVal = Gen.builder.zext(IndexVal, ir.IntType(64), name="zext_ptr_index_ptr") - ElemPtr = Gen.builder.gep(ValueVal, [IndexVal], name="subscript_ptr") - return ElemPtr - else: - # 指针到 str/bytes 的变量 (BinOp 注解如 str | t.CPtr, bytes | t.CPtr) - # elem_ptr 是 i8* 但实际指向 i8* (指针数组), 应按 8 字节步长 GEP - if isinstance(Node.value, ast.Name): - _ptr_elem_flag: bool = (getattr(Gen, 'var_ptr_element', {}).get(Node.value.id, False) - or getattr(Gen, 'global_var_ptr_element', {}).get(Node.value.id, False)) - if _ptr_elem_flag: - CastedPtrPtr: Any = Gen.builder.bitcast(ValueVal, ir.PointerType(ir.PointerType(ir.IntType(8))), name="cast_pp_str_ptr") - if isinstance(IndexVal.type, ir.IntType) and IndexVal.type.width < 64: - IndexVal = Gen.builder.zext(IndexVal, ir.IntType(64), name="zext_pp_str_index_ptr") - ElemPtr = Gen.builder.gep(CastedPtrPtr, [IndexVal], name="subscript_ptr") - return ElemPtr - if isinstance(IndexVal.type, ir.IntType) and IndexVal.type.width < 64: - IndexVal = Gen.builder.zext(IndexVal, ir.IntType(64), name="zext_ptr_index") - ElemPtr = Gen.builder.gep(ValueVal, [IndexVal], name="subscript_ptr") - return ElemPtr - elif isinstance(ValueVal.type, ir.IntType): - var_ptr: Any = self._get_int_ptr(Node.value) - if var_ptr: - i8_ptr: Any = Gen.builder.bitcast(var_ptr, ir.PointerType(ir.IntType(8)), name="int_to_i8ptr") - if isinstance(IndexVal.type, ir.IntType) and IndexVal.type.width < 64: - IndexVal = Gen.builder.zext(IndexVal, ir.IntType(64), name="zext_int_index") - ElemPtr = Gen.builder.gep(i8_ptr, [IndexVal], name="int_subscript_ptr") - return ElemPtr - elif isinstance(ValueVal.type, ir.ArrayType): - zero = ir.Constant(ir.IntType(32), 0) - if isinstance(Node.value, ast.Name): - VarName: str = Node.value.id - if VarName in Gen.variables and Gen.variables[VarName] is not None: - VarPtr: Any = Gen.variables[VarName] - if isinstance(VarPtr.type, ir.PointerType) and isinstance(VarPtr.type.pointee, ir.ArrayType): - if isinstance(IndexVal.type, ir.IntType) and IndexVal.type.width != 32: - if IndexVal.type.width < 32: - IndexVal = Gen.builder.zext(IndexVal, ir.IntType(32), name="zext_arr_index") - else: - IndexVal = Gen.builder.trunc(IndexVal, ir.IntType(32), name="trunc_arr_index") - ElemPtr = Gen.builder.gep(VarPtr, [zero, IndexVal], name="subscript_ptr") - return ElemPtr - if isinstance(Node.value, ast.Subscript): - InnerPtr: Any = self.HandleSubscriptPtrLlvm(Node.value) - if InnerPtr: - if isinstance(IndexVal.type, ir.IntType) and IndexVal.type.width != 32: - if IndexVal.type.width < 32: - IndexVal = Gen.builder.zext(IndexVal, ir.IntType(32), name="zext_arr_index") - else: - IndexVal = Gen.builder.trunc(IndexVal, ir.IntType(32), name="trunc_arr_index") - ElemPtr = Gen.builder.gep(InnerPtr, [zero, IndexVal], name="subscript_ptr") - return ElemPtr - if isinstance(Node.value, ast.Attribute): - AttrPtr: Any = self._get_attr_ptr(Node.value) - if AttrPtr and isinstance(AttrPtr.type, ir.PointerType) and isinstance(AttrPtr.type.pointee, ir.ArrayType): - if isinstance(IndexVal.type, ir.IntType) and IndexVal.type.width != 32: - if IndexVal.type.width < 32: - IndexVal = Gen.builder.zext(IndexVal, ir.IntType(32), name="zext_arr_index") - else: - IndexVal = Gen.builder.trunc(IndexVal, ir.IntType(32), name="trunc_arr_index") - ElemPtr = Gen.builder.gep(AttrPtr, [zero, IndexVal], name="subscript_ptr") - return ElemPtr - arr_alloc: Any = Gen._allocaEntry(ValueVal.type, name="arr_subscript_tmp") - Gen._store(ValueVal, arr_alloc) - ElemPtr = Gen.builder.gep(arr_alloc, [zero, IndexVal], name="subscript_ptr") - return ElemPtr - return None - - # ========== _get_attr_ptr / _get_int_ptr / _get_attr_class ========== - - def _get_attr_ptr(self, Node: ast.Attribute) -> ir.Value | None: - Gen: LlvmCodeGenerator = self.Trans.LlvmGen - if not isinstance(Node, ast.Attribute): - return None - if isinstance(Node.value, ast.Name): - VarName: str = Node.value.id - if VarName == 'self': - ClassName: str | None = self.Trans._CurrentCpythonObjectClass - if ClassName: - offset: int | None = Gen._get_member_offset(Node.attr, ClassName) - SelfVar: Any = Gen._get_var_ptr('self') - if SelfVar: - SelfPtr: Any = Gen._load(SelfVar, name="self") - if isinstance(SelfPtr.type, ir.PointerType): - MemberPtr: Any = Gen.builder.gep(SelfPtr, [ir.Constant(ir.IntType(32), 0), ir.Constant(ir.IntType(32), offset)], name=Node.attr) - return MemberPtr - ClassName = Gen.var_struct_class.get(VarName) - if not ClassName and getattr(Gen, 'global_struct_class', None): - ClassName = Gen.global_struct_class.get(VarName) - if not ClassName: - imported_modules: Any = getattr(self.Trans, '_ImportedModules', None) - resolved_mod: str = self.Trans.SymbolTable.resolve_alias(VarName) - if imported_modules and (VarName in imported_modules or resolved_mod in imported_modules): - AttrName: str = Node.attr - ModuleSha1Map: Any = getattr(Gen, 'ModuleSha1Map', {}) - candidates: list[str] = [VarName, resolved_mod] - for mod_name in imported_modules: - if mod_name.endswith(f".{VarName}") or mod_name == VarName: - if mod_name not in candidates: - candidates.append(mod_name) - for cand in candidates: - sha1: str | None = ModuleSha1Map.get(cand) - if sha1: - prefixed: str = f"{sha1}.{AttrName}" - if prefixed in Gen.module.globals: - return Gen.module.globals[prefixed] - if AttrName in Gen.module.globals: - gv: Any = Gen.module.globals[AttrName] - if isinstance(gv, ir.GlobalVariable): - return gv - if ClassName and ClassName in Gen.structs: - VarPtr: Any = Gen.variables.get(VarName) - if VarPtr: - ObjVal: Any = VarPtr - if isinstance(ObjVal.type, ir.PointerType) and isinstance(ObjVal.type.pointee, ir.PointerType): - ObjVal = Gen._load(ObjVal, name=f"Load_{VarName}") - if isinstance(ObjVal.type, ir.PointerType) and ObjVal.type.pointee == Gen.structs[ClassName]: - ST: Any = Gen.structs[ClassName] - if isinstance(ST, ir.IdentifiedStructType) and (ST.elements is None or len(ST.elements) == 0): - self.Trans.ImportHandler._TryLoadStructFromStub(ClassName, Gen) - ST = Gen.structs.get(ClassName, ST) - if ST.elements is not None and isinstance(ObjVal.type.pointee, ir.IdentifiedStructType) and ObjVal.type.pointee.elements is None: - ObjVal = Gen.builder.bitcast(ObjVal, ir.PointerType(ST), name=f"cast_{ClassName}") - offset = Gen._get_member_offset(Node.attr, ClassName) - if offset is not None and ST.elements is not None: - MemberPtr = Gen.builder.gep(ObjVal, [ir.Constant(ir.IntType(32), 0), ir.Constant(ir.IntType(32), offset)], name=Node.attr) - return MemberPtr - elif isinstance(Node.value, ast.Attribute): - InnerPtr: Any = self._get_attr_ptr(Node.value) - if InnerPtr and isinstance(InnerPtr.type, ir.PointerType): - pointee: Any = InnerPtr.type.pointee - if isinstance(pointee, (ir.IdentifiedStructType, ir.LiteralStructType)): - found: Any = Gen.find_struct_by_pointee(pointee) - if found: - CN: str - ST: Any - CN, ST = found - if isinstance(ST, ir.IdentifiedStructType) and (ST.elements is None or len(ST.elements) == 0): - self.Trans.ImportHandler._TryLoadStructFromStub(CN, Gen) - ST = Gen.structs.get(CN, ST) - if ST.elements is not None and isinstance(InnerPtr.type, ir.PointerType) and isinstance(InnerPtr.type.pointee, ir.IdentifiedStructType) and InnerPtr.type.pointee.elements is None: - InnerPtr = Gen.builder.bitcast(InnerPtr, ir.PointerType(ST), name=f"cast_{CN}") - offset = Gen._get_member_offset(Node.attr, CN) - if offset is not None and ST.elements is not None: - MemberPtr = Gen.builder.gep(InnerPtr, [ir.Constant(ir.IntType(32), 0), ir.Constant(ir.IntType(32), offset)], name=Node.attr) - return MemberPtr - elif isinstance(pointee, ir.IntType) and pointee.width == 8: - AttrClassName: str | None = self._get_attr_class(Node.value, Gen) - if AttrClassName and AttrClassName in Gen.structs: - CastedObj: Any = Gen.builder.bitcast(InnerPtr, ir.PointerType(Gen.structs[AttrClassName]), name=f"cast_{AttrClassName}") - offset = Gen._get_member_offset(Node.attr, AttrClassName) - if offset is not None: - MemberPtr = Gen.builder.gep(CastedObj, [ir.Constant(ir.IntType(32), 0), ir.Constant(ir.IntType(32), offset)], name=Node.attr) - return MemberPtr - elif isinstance(Node.value, ast.Subscript): - SubPtr: Any = self.HandleSubscriptPtrLlvm(Node.value) - if SubPtr and isinstance(SubPtr.type, ir.PointerType): - pointee = SubPtr.type.pointee - if isinstance(pointee, (ir.IdentifiedStructType, ir.LiteralStructType)): - found = Gen.find_struct_by_pointee(pointee) - if found: - CN, ST = found - offset = Gen._get_member_offset(Node.attr, CN) - if offset is not None: - MemberPtr = Gen.builder.gep(SubPtr, [ir.Constant(ir.IntType(32), 0), ir.Constant(ir.IntType(32), offset)], name=Node.attr) - return MemberPtr - return None - - def _HandleSliceLlvm(self, base_val: ir.Value, slice_node: ast.Slice | ast.Index, base_ast: ast.AST) -> ir.Value | None: - Gen: LlvmCodeGenerator = self.Trans.LlvmGen - lower_val: Any = None - upper_val: Any = None - step_val: Any = None - if isinstance(slice_node, ast.Slice): - if slice_node.lower: - lower_val = self.HandleExprLlvm(slice_node.lower) - if slice_node.upper: - upper_val = self.HandleExprLlvm(slice_node.upper) - if slice_node.step: - step_val = self.HandleExprLlvm(slice_node.step) - if isinstance(slice_node, ast.Index): - return self.HandleExprLlvm(slice_node.value) - return None - - def _infer_element_struct_class(self, node: ast.AST, Gen: LlvmCodeGenerator) -> str | None: - if isinstance(node, ast.Attribute): - attr_name: str = node.attr - if isinstance(node.value, ast.Name) and node.value.id == 'self': - current_class: str | None = self.Trans._CurrentCpythonObjectClass - if current_class: - if current_class in Gen.class_member_element_class: - elem_class: str | None = Gen.class_member_element_class[current_class].get(attr_name) - if elem_class and elem_class in Gen.structs: - return elem_class - if current_class in Gen.class_members: - for member_name, member_type in Gen.class_members[current_class]: - if member_name == attr_name: - if isinstance(member_type, ir.IdentifiedStructType): - found: Any = Gen.find_struct_by_pointee(member_type) - if found: - return found[0] - break - class_name: str | None = Gen.var_struct_class.get(attr_name) - if class_name: - return class_name - elif isinstance(node, ast.Name): - var_name: str = node.id - class_name = Gen.var_struct_class.get(var_name) - if class_name: - return class_name - return None - - def _get_int_ptr(self, target: ast.AST) -> ir.Value | None: - Gen: LlvmCodeGenerator = self.Trans.LlvmGen - if isinstance(target, ast.Name): - VarName: str = target.id - if VarName in Gen.variables and Gen.variables[VarName] is not None: - VarPtr: Any = Gen.variables[VarName] - if isinstance(VarPtr.type, ir.PointerType): - pointee: Any = VarPtr.type.pointee - if isinstance(pointee, ir.ArrayType): - return Gen.builder.gep(VarPtr, [ir.Constant(ir.IntType(32), 0), ir.Constant(ir.IntType(32), 0)], name=f"arr_start_{VarName}") - return VarPtr - elif isinstance(target, ast.Attribute): - if isinstance(target.value, ast.Name): - obj_name: str = target.value.id - if obj_name in Gen.variables and Gen.variables[obj_name] is not None: - obj_ptr: Any = Gen.variables[obj_name] - if isinstance(obj_ptr.type, ir.PointerType): - pointee = obj_ptr.type.pointee - if isinstance(pointee, ir.PointerType): - obj_ptr = Gen._load(obj_ptr, name=f"Load_{obj_name}") - pointee = obj_ptr.type.pointee - if isinstance(pointee, (ir.IdentifiedStructType, ir.LiteralStructType)): - StructName: str | None = None - if isinstance(pointee, ir.IdentifiedStructType): - StructName = pointee.name - if not StructName: - found: Any = Gen.find_struct_by_pointee(pointee) - if found: - StructName = found[0] - if StructName and StructName in Gen.structs: - offset: int | None = Gen._get_member_offset(target.attr, StructName) - if offset is not None: - return Gen.builder.gep(obj_ptr, [ir.Constant(ir.IntType(32), 0), ir.Constant(ir.IntType(32), offset)], name=f"{target.attr}_ptr") - obj_val: Any = self.HandleExprLlvm(target.value) - if obj_val and isinstance(obj_val.type, ir.PointerType): - if isinstance(obj_val.type.pointee, ir.PointerType): - obj_val = Gen._load(obj_val, name="Load_attr_ptr") - pointee = obj_val.type.pointee - if isinstance(pointee, (ir.IdentifiedStructType, ir.LiteralStructType)): - StructName = None - if isinstance(pointee, ir.IdentifiedStructType): - StructName = pointee.name - if not StructName: - found = Gen.find_struct_by_pointee(pointee) - if found: - StructName = found[0] - if StructName and StructName in Gen.structs: - offset = Gen._get_member_offset(target.attr, StructName) - if offset is not None: - return Gen.builder.gep(obj_val, [ir.Constant(ir.IntType(32), 0), ir.Constant(ir.IntType(32), offset)], name=f"{target.attr}_ptr") - return None - - def _resolve_struct_class_for_attr(self, Node: ast.AST, Gen: LlvmCodeGenerator) -> str | None: - if isinstance(Node, ast.Name): - VarName: str = Node.id - if VarName in Gen.var_struct_class: - return Gen.var_struct_class[VarName] - elif isinstance(Node, ast.Attribute): - ClassName: str | None = self._resolve_struct_class_for_attr(Node.value, Gen) - if ClassName and ClassName in Gen.class_members: - for member_name, _ in Gen.class_members[ClassName]: - if member_name == Node.attr: - return ClassName - return None - - def _infer_array_member_type(self, Node: ast.AST, Gen: LlvmCodeGenerator) -> ir.ArrayType | None: - if isinstance(Node, ast.Attribute): - parent_class: str | None = self._get_attr_class(Node, Gen) - if parent_class and parent_class in Gen.class_members: - for m_name, m_type in Gen.class_members[parent_class]: - if m_name == Node.attr and isinstance(m_type, ir.ArrayType): - return m_type - if parent_class and parent_class in Gen.structs: - st: Any = Gen.structs[parent_class] - if isinstance(st, ir.IdentifiedStructType) and st.elements is not None: - offset: int | None = Gen._get_member_offset(Node.attr, parent_class) - if offset is not None and offset < len(st.elements): - elem: Any = st.elements[offset] - if isinstance(elem, ir.ArrayType): - return elem - return None - - def _build_attr_path(self, node: ast.AST) -> list[str]: - parts: list[str] = [] - current: ast.AST = node - while isinstance(current, ast.Attribute): - parts.append(current.attr) - current = current.value - if isinstance(current, ast.Name): - parts.append(current.id) - parts.reverse() - return parts - - def _try_resolve_nested_cdefine(self, Node: ast.Attribute) -> ir.Value | None: - Gen: LlvmCodeGenerator = self.Trans.LlvmGen - imported_modules: Any = getattr(self.Trans, '_ImportedModules', None) - if not imported_modules: - return None - parts: list[str] = self._build_attr_path(Node) - if len(parts) < 2: - return None - attr_name: str = parts[-1] - module_parts: list[str] = parts[:-1] - possible_keys: list[str] = [attr_name] - full_path: str = '.'.join(parts) - possible_keys.append(full_path) - if module_parts: - ModulePath: str = '.'.join(module_parts) - resolved_first: str = self.Trans.SymbolTable.resolve_alias(module_parts[0]) - if resolved_first != module_parts[0]: - resolved_parts: list[str] = [resolved_first] + module_parts[1:] - resolved_path: str = '.'.join(resolved_parts) - possible_keys.append(f"{resolved_path}.{attr_name}") - for mod_name in imported_modules: - if mod_name.endswith('.' + ModulePath) or mod_name == ModulePath: - key: str = f"{mod_name}.{attr_name}" - if key not in possible_keys: - possible_keys.append(key) - if module_parts and (mod_name.endswith('.' + module_parts[-1]) or mod_name == module_parts[-1]): - key = f"{mod_name}.{attr_name}" - if key not in possible_keys: - possible_keys.append(key) - for lookup_key in possible_keys: - SymInfo: Any = self.Trans.SymbolTable.lookup(lookup_key) - if SymInfo and SymInfo.IsDefine and SymInfo.DefineValue is not None: - val: Any = SymInfo.DefineValue - if isinstance(val, int): - if val > 0x7FFFFFFF or val < -0x80000000: - return ir.Constant(ir.IntType(64), val & 0xFFFFFFFFFFFFFFFF) - return ir.Constant(ir.IntType(32), val) - elif isinstance(val, float): - return ir.Constant(ir.FloatType(), val) - return None - - def _try_resolve_cross_module_enum(self, module_alias: str, enum_class_name: str, member_name: str) -> ir.Value | None: - Gen: LlvmCodeGenerator = self.Trans.LlvmGen - imported_modules: Any = getattr(self.Trans, '_ImportedModules', None) - if not imported_modules: - return None - resolved_module: str = self.Trans.SymbolTable.resolve_alias(module_alias) - if resolved_module not in imported_modules and module_alias not in imported_modules: - return None - enum_keys: list[str] = [enum_class_name, f"{resolved_module}.{enum_class_name}"] - for enum_key in enum_keys: - SymInfo: Any = self.Trans.SymbolTable.lookup(enum_key) - if SymInfo: - if SymInfo.IsEnum: - for qname in (f"{enum_key}.{member_name}", f"{enum_key}_{member_name}"): - info: Any = self.Trans.SymbolTable.lookup(qname) - if info and info.IsEnumMember and isinstance(info.value, int): - return ir.Constant(ir.IntType(32), info.value) - for key, info in self.Trans.SymbolTable.items(): - if info.IsEnumMember and info.EnumName == enum_key and key == member_name: - if isinstance(info.value, int): - return ir.Constant(ir.IntType(32), info.value) - for key, info in self.Trans.SymbolTable.items(): - if info.IsEnumMember and key == member_name: - if isinstance(info.value, int): - for enum_key in enum_keys: - if info.EnumName == enum_key: - return ir.Constant(ir.IntType(32), info.value) - return None - - def _get_attr_class(self, Node: ast.AST, Gen: LlvmCodeGenerator) -> str | None: - if isinstance(Node, ast.Attribute): - # 注: 不再硬编码 ZLIB_VERSION / C_OK,它们应从符号表查找 - if isinstance(Node.value, ast.Name) and Node.value.id == 'self': - ClassName: str | None = self.Trans._CurrentCpythonObjectClass - if ClassName and ClassName in Gen.class_member_element_class: - return Gen.class_member_element_class[ClassName].get(Node.attr) - if isinstance(Node.value, ast.Name): - VarName: str = Node.value.id - if VarName in Gen.var_struct_class: - ParentClass: str = Gen.var_struct_class[VarName] - if ParentClass in Gen.class_member_element_class: - return Gen.class_member_element_class[ParentClass].get(Node.attr) - if isinstance(Node.value, ast.Attribute): - ParentClass = self._get_attr_class(Node.value, Gen) - if ParentClass and ParentClass in Gen.class_member_element_class: - return Gen.class_member_element_class[ParentClass].get(Node.attr) - return None - - def _get_llvm_member_offset(self, field_name: str, ClassName: str, Gen: LlvmCodeGenerator) -> int | None: - return Gen._get_member_offset(field_name, ClassName) \ No newline at end of file diff --git a/Test/ArgparseTest/output/08ea5281873244fd.deps.json b/Test/ArgparseTest/output/08ea5281873244fd.deps.json index 1f1902c..e358559 100644 --- a/Test/ArgparseTest/output/08ea5281873244fd.deps.json +++ b/Test/ArgparseTest/output/08ea5281873244fd.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "memhub": "47775d5e50909338", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "argparse": "aba439b7882ad9d6", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "stdio": "6f62fe05c5ea1ceb", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "argparse": "aba439b7882ad9d6", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb"} \ No newline at end of file diff --git a/Test/ArgparseTest/output/aba439b7882ad9d6.deps.json b/Test/ArgparseTest/output/14d33679f7fadf1f.deps.json similarity index 73% rename from Test/ArgparseTest/output/aba439b7882ad9d6.deps.json rename to Test/ArgparseTest/output/14d33679f7fadf1f.deps.json index 8fe1dc0..79311d0 100644 --- a/Test/ArgparseTest/output/aba439b7882ad9d6.deps.json +++ b/Test/ArgparseTest/output/14d33679f7fadf1f.deps.json @@ -1 +1 @@ -{"main": "08ea5281873244fd", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "memhub": "47775d5e50909338", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "argparse": "aba439b7882ad9d6", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"main": "08ea5281873244fd", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "stdio": "6f62fe05c5ea1ceb", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "argparse": "aba439b7882ad9d6", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb"} \ No newline at end of file diff --git a/Test/ArgparseTest/output/_shared_sym_includes.pickle b/Test/ArgparseTest/output/_shared_sym_includes.pickle deleted file mode 100644 index 2496401cb182b3b72ad352c674a313af4b74899e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 369950 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

&rD2ux7{u(9- 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 a?&JObpAWl#7MIRVQtmUeRd#-H=l=s#bCeVS diff --git a/Test/AstTest/output/b547ac4f380bddb6.deps.json b/Test/AstTest/output/b547ac4f380bddb6.deps.json deleted file mode 100644 index 25fc01d..0000000 --- a/Test/AstTest/output/b547ac4f380bddb6.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "main": "0853acdbdfc9b27c", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "viperlib": "1d40c4bdc94641c5", "atom": "271ea3decb810db2", "ast.__init__": "34548789d646f432", "__init__": "34548789d646f432", "ast": "34548789d646f432", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "memhub": "47775d5e50909338", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "string": "9474791561654346", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/AstTest/output/b5a965302cded36b.deps.json b/Test/AstTest/output/b5a965302cded36b.deps.json deleted file mode 100644 index 25fc01d..0000000 --- a/Test/AstTest/output/b5a965302cded36b.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "main": "0853acdbdfc9b27c", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "viperlib": "1d40c4bdc94641c5", "atom": "271ea3decb810db2", "ast.__init__": "34548789d646f432", "__init__": "34548789d646f432", "ast": "34548789d646f432", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "memhub": "47775d5e50909338", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "string": "9474791561654346", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/AstTest/output/ee52c08239684346.deps.json b/Test/AstTest/output/ee52c08239684346.deps.json deleted file mode 100644 index 0b6daa5..0000000 --- a/Test/AstTest/output/ee52c08239684346.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "main": "0853acdbdfc9b27c", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "viperlib": "1d40c4bdc94641c5", "atom": "271ea3decb810db2", "ast.__init__": "34548789d646f432", "__init__": "34548789d646f432", "ast": "34548789d646f432", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "memhub": "47775d5e50909338", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "string": "9474791561654346", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "base.tokens": "b547ac4f380bddb6", "exprs.base": "5dab8cb390496d22", "stmts.base": "5dab8cb390496d22", "astaux.base": "5dab8cb390496d22", "match.base": "5dab8cb390496d22", "lexer.tokens": "b547ac4f380bddb6"} \ No newline at end of file diff --git a/Test/AstTest/temp/47775d5e50909338.pyi b/Test/AstTest/temp/754640ce30cfebcc.pyi similarity index 100% rename from Test/AstTest/temp/47775d5e50909338.pyi rename to Test/AstTest/temp/754640ce30cfebcc.pyi diff --git a/Test/AstTest/temp/_phase1_manifest.json b/Test/AstTest/temp/_phase1_manifest.json index 8ca5e13..0d14d9a 100644 --- a/Test/AstTest/temp/_phase1_manifest.json +++ b/Test/AstTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\AstTest\\App\\main.py": {"sha1": "0853acdbdfc9b27c", "mtime": 1782892830.6294758, "size": 2439}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\__init__.py": {"sha1": "34548789d646f432", "mtime": 1784102404.6307266, "size": 3409}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\astaux.py": {"sha1": "4337fb260448bbe2", "mtime": 1784006094.7981195, "size": 11489}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\base.py": {"sha1": "5dab8cb390496d22", "mtime": 1784197698.3282094, "size": 14966}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\exprs.py": {"sha1": "47767b5026a8ee15", "mtime": 1783239758.809719, "size": 40615}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\lexer.py": {"sha1": "0c212981c180e7fb", "mtime": 1783400609.908198, "size": 23535}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\match.py": {"sha1": "4dd6b3f1427d1cc5", "mtime": 1782961799.8492737, "size": 12309}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\parser.py": {"sha1": "ee52c08239684346", "mtime": 1784102405.1933146, "size": 85445}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\stmts.py": {"sha1": "657e182b27c2a022", "mtime": 1783929993.759902, "size": 37926}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\tokens.py": {"sha1": "b547ac4f380bddb6", "mtime": 1783165480.469121, "size": 13722}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "47775d5e50909338", "mtime": 1784464283.860502, "size": 19750}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\platmacro.py": {"sha1": "93c1d18e35d188d6", "mtime": 1781237231.03366, "size": 1422}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\posix.py": {"sha1": "6503c97dde0c79c4", "mtime": 1783064077.6376991, "size": 10386}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.py": {"sha1": "71e0a3ffcb3ebfad", "mtime": 1781258888.113146, "size": 277}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784464295.903657, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784387475.6951904, "size": 10395}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\sys.py": {"sha1": "b5a965302cded36b", "mtime": 1783569641.07535, "size": 5509}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.py": {"sha1": "1d40c4bdc94641c5", "mtime": 1784470563.362105, "size": 56865}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32process.py": {"sha1": "067c78e9f121dce3", "mtime": 1781200703.5409546, "size": 4802}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\AstTest\\App\\main.py": {"sha1": "0853acdbdfc9b27c", "mtime": 1782892830.6294758, "size": 2439}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\__init__.py": {"sha1": "34548789d646f432", "mtime": 1784102404.6307266, "size": 3409}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\astaux.py": {"sha1": "4337fb260448bbe2", "mtime": 1784006094.7981195, "size": 11489}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\base.py": {"sha1": "5dab8cb390496d22", "mtime": 1784197698.3282094, "size": 14966}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\exprs.py": {"sha1": "47767b5026a8ee15", "mtime": 1783239758.809719, "size": 40615}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\lexer.py": {"sha1": "0c212981c180e7fb", "mtime": 1783400609.908198, "size": 23535}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\match.py": {"sha1": "4dd6b3f1427d1cc5", "mtime": 1782961799.8492737, "size": 12309}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\parser.py": {"sha1": "ee52c08239684346", "mtime": 1784102405.1933146, "size": 85445}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\stmts.py": {"sha1": "657e182b27c2a022", "mtime": 1783929993.759902, "size": 37926}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\tokens.py": {"sha1": "b547ac4f380bddb6", "mtime": 1783165480.469121, "size": 13722}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "754640ce30cfebcc", "mtime": 1784566611.8434613, "size": 20300}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\platmacro.py": {"sha1": "93c1d18e35d188d6", "mtime": 1781237231.03366, "size": 1422}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\posix.py": {"sha1": "6503c97dde0c79c4", "mtime": 1783064077.6376991, "size": 10386}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.py": {"sha1": "71e0a3ffcb3ebfad", "mtime": 1781258888.113146, "size": 277}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784566611.8280091, "size": 10395}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\sys.py": {"sha1": "b5a965302cded36b", "mtime": 1783569641.07535, "size": 5509}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.py": {"sha1": "c3b259b4059f8668", "mtime": 1784566611.8459883, "size": 56772}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32process.py": {"sha1": "067c78e9f121dce3", "mtime": 1781200703.5409546, "size": 4802}} \ No newline at end of file diff --git a/Test/AstTest/temp/_sha1_map.txt b/Test/AstTest/temp/_sha1_map.txt index d798910..8b9df67 100644 --- a/Test/AstTest/temp/_sha1_map.txt +++ b/Test/AstTest/temp/_sha1_map.txt @@ -1,18 +1,17 @@ 067c78e9f121dce3:includes/w32\win32process.py 0853acdbdfc9b27c:main.py 0c212981c180e7fb:includes/ast\lexer.py -1d40c4bdc94641c5:includes/viperlib.py 271ea3decb810db2:includes/atom.py 34548789d646f432:includes/ast\__init__.py 4337fb260448bbe2:includes/ast\astaux.py 47767b5026a8ee15:includes/ast\exprs.py -47775d5e50909338:includes/memhub.py 4dd6b3f1427d1cc5:includes/ast\match.py 5dab8cb390496d22:includes/ast\base.py 6503c97dde0c79c4:includes/posix.py 657e182b27c2a022:includes/ast\stmts.py 6f62fe05c5ea1ceb:includes/stdio.py 71e0a3ffcb3ebfad:includes/stdarg.py +754640ce30cfebcc:includes/memhub.py 7e529fe7a078cfef:includes/w32\win32base.py 90c53dd6db8d41cf:includes/stdlib.py 93c1d18e35d188d6:includes/platmacro.py @@ -20,6 +19,7 @@ b547ac4f380bddb6:includes/ast\tokens.py b5a965302cded36b:includes/sys.py bbdf3bbd4c3bc28c:includes/w32\win32console.py +c3b259b4059f8668:includes/viperlib.py c9f4be41ca1cc2b4:includes/viperio.py ee52c08239684346:includes/ast\parser.py f5522571bcce7bcb:includes/stdint.py diff --git a/Test/AstTest/temp/1d40c4bdc94641c5.pyi b/Test/AstTest/temp/c3b259b4059f8668.pyi similarity index 98% rename from Test/AstTest/temp/1d40c4bdc94641c5.pyi rename to Test/AstTest/temp/c3b259b4059f8668.pyi index 597cc07..67ff4ce 100644 --- a/Test/AstTest/temp/1d40c4bdc94641c5.pyi +++ b/Test/AstTest/temp/c3b259b4059f8668.pyi @@ -6,7 +6,6 @@ Module: viperlib import t, c import viperio -import stdio from stdarg import arg, va_arg TEMP_BUF_SIZE: t.CDefine = 68 diff --git a/Test/BuddyTest/App/mbuddytest.py b/Test/BuddyTest/App/mbuddytest.py index 14084dc..3cbc1d6 100644 --- a/Test/BuddyTest/App/mbuddytest.py +++ b/Test/BuddyTest/App/mbuddytest.py @@ -33,10 +33,8 @@ def mbuddy_main() -> CInt: testcheck.section("基础 alloc/free") arena: bytes = stdlib.malloc(65536) bd: memhub.MemBuddy | CPtr = memhub.MemBuddy(arena, 65536) - s1: CSizeT = bd.stats() - fc1: CSizeT = bd.free_count() - viperlib.snprintf(buf, 256, "stats=%lu, free_count=%lu", s1, fc1) + viperlib.snprintf(buf, 256, "stats=%lu, free_count=%lu", bd.stats(), bd.free_count()) testcheck.info(buf) p1: bytes = bd.alloc(16) diff --git a/Test/BuddyTest/output/0035c95a18d4f8e8.deps.json b/Test/BuddyTest/output/0035c95a18d4f8e8.deps.json new file mode 100644 index 0000000..bc39a3f --- /dev/null +++ b/Test/BuddyTest/output/0035c95a18d4f8e8.deps.json @@ -0,0 +1 @@ +{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "mbuddytest": "5a3d93d7860d5dc0", "main": "5e430ae5bf7af3a2", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/BuddyTest/output/067c78e9f121dce3.deps.json b/Test/BuddyTest/output/067c78e9f121dce3.deps.json new file mode 100644 index 0000000..bc39a3f --- /dev/null +++ b/Test/BuddyTest/output/067c78e9f121dce3.deps.json @@ -0,0 +1 @@ +{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "mbuddytest": "5a3d93d7860d5dc0", "main": "5e430ae5bf7af3a2", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/BuddyTest/output/06f53cc594b4ac6c.deps.json b/Test/BuddyTest/output/06f53cc594b4ac6c.deps.json new file mode 100644 index 0000000..bc39a3f --- /dev/null +++ b/Test/BuddyTest/output/06f53cc594b4ac6c.deps.json @@ -0,0 +1 @@ +{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "mbuddytest": "5a3d93d7860d5dc0", "main": "5e430ae5bf7af3a2", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/BuddyTest/output/14d33679f7fadf1f.deps.json b/Test/BuddyTest/output/14d33679f7fadf1f.deps.json new file mode 100644 index 0000000..bc39a3f --- /dev/null +++ b/Test/BuddyTest/output/14d33679f7fadf1f.deps.json @@ -0,0 +1 @@ +{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "mbuddytest": "5a3d93d7860d5dc0", "main": "5e430ae5bf7af3a2", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/BuddyTest/output/271ea3decb810db2.deps.json b/Test/BuddyTest/output/271ea3decb810db2.deps.json new file mode 100644 index 0000000..bc39a3f --- /dev/null +++ b/Test/BuddyTest/output/271ea3decb810db2.deps.json @@ -0,0 +1 @@ +{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "mbuddytest": "5a3d93d7860d5dc0", "main": "5e430ae5bf7af3a2", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/BuddyTest/output/4f218f56e4225fcd.deps.json b/Test/BuddyTest/output/4f218f56e4225fcd.deps.json deleted file mode 100644 index 6ce44a0..0000000 --- a/Test/BuddyTest/output/4f218f56e4225fcd.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "testcheck": "14d33679f7fadf1f", "viperlib": "1d40c4bdc94641c5", "atom": "271ea3decb810db2", "memhub": "47775d5e50909338", "main": "5e430ae5bf7af3a2", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb"} \ No newline at end of file diff --git a/Test/BuddyTest/output/5a3d93d7860d5dc0.deps.json b/Test/BuddyTest/output/5a3d93d7860d5dc0.deps.json new file mode 100644 index 0000000..0ed084b --- /dev/null +++ b/Test/BuddyTest/output/5a3d93d7860d5dc0.deps.json @@ -0,0 +1 @@ +{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "main": "5e430ae5bf7af3a2", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb"} \ No newline at end of file diff --git a/Test/BuddyTest/output/5e430ae5bf7af3a2.deps.json b/Test/BuddyTest/output/5e430ae5bf7af3a2.deps.json index de79246..5ddf435 100644 --- a/Test/BuddyTest/output/5e430ae5bf7af3a2.deps.json +++ b/Test/BuddyTest/output/5e430ae5bf7af3a2.deps.json @@ -1 +1 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "testcheck": "14d33679f7fadf1f", "viperlib": "1d40c4bdc94641c5", "atom": "271ea3decb810db2", "memhub": "47775d5e50909338", "mbuddytest": "4f218f56e4225fcd", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "mbuddytest": "5a3d93d7860d5dc0", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb"} \ No newline at end of file diff --git a/Test/BuddyTest/output/6446627d4f07a1b5.deps.json b/Test/BuddyTest/output/6446627d4f07a1b5.deps.json new file mode 100644 index 0000000..bc39a3f --- /dev/null +++ b/Test/BuddyTest/output/6446627d4f07a1b5.deps.json @@ -0,0 +1 @@ +{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "mbuddytest": "5a3d93d7860d5dc0", "main": "5e430ae5bf7af3a2", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/BuddyTest/output/72e2d5ccb7cedcf1.deps.json b/Test/BuddyTest/output/72e2d5ccb7cedcf1.deps.json new file mode 100644 index 0000000..bc39a3f --- /dev/null +++ b/Test/BuddyTest/output/72e2d5ccb7cedcf1.deps.json @@ -0,0 +1 @@ +{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "mbuddytest": "5a3d93d7860d5dc0", "main": "5e430ae5bf7af3a2", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/BuddyTest/output/754640ce30cfebcc.deps.json b/Test/BuddyTest/output/754640ce30cfebcc.deps.json new file mode 100644 index 0000000..bc39a3f --- /dev/null +++ b/Test/BuddyTest/output/754640ce30cfebcc.deps.json @@ -0,0 +1 @@ +{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "mbuddytest": "5a3d93d7860d5dc0", "main": "5e430ae5bf7af3a2", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/BuddyTest/output/7e529fe7a078cfef.deps.json b/Test/BuddyTest/output/7e529fe7a078cfef.deps.json new file mode 100644 index 0000000..bc39a3f --- /dev/null +++ b/Test/BuddyTest/output/7e529fe7a078cfef.deps.json @@ -0,0 +1 @@ +{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "mbuddytest": "5a3d93d7860d5dc0", "main": "5e430ae5bf7af3a2", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/BuddyTest/output/9474791561654346.deps.json b/Test/BuddyTest/output/9474791561654346.deps.json new file mode 100644 index 0000000..bc39a3f --- /dev/null +++ b/Test/BuddyTest/output/9474791561654346.deps.json @@ -0,0 +1 @@ +{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "mbuddytest": "5a3d93d7860d5dc0", "main": "5e430ae5bf7af3a2", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/BuddyTest/output/_shared_sym_includes.pickle b/Test/BuddyTest/output/_shared_sym_includes.pickle new file mode 100644 index 0000000000000000000000000000000000000000..b8115ea06151b9895cc8487163d5908866dbb699 GIT binary patch literal 635333 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/$!bp| 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 literal 0 HcmV?d00001 diff --git a/Test/BuddyTest/output/bbdf3bbd4c3bc28c.deps.json b/Test/BuddyTest/output/bbdf3bbd4c3bc28c.deps.json new file mode 100644 index 0000000..bc39a3f --- /dev/null +++ b/Test/BuddyTest/output/bbdf3bbd4c3bc28c.deps.json @@ -0,0 +1 @@ +{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "mbuddytest": "5a3d93d7860d5dc0", "main": "5e430ae5bf7af3a2", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/BuddyTest/output/c3b259b4059f8668.deps.json b/Test/BuddyTest/output/c3b259b4059f8668.deps.json new file mode 100644 index 0000000..bc39a3f --- /dev/null +++ b/Test/BuddyTest/output/c3b259b4059f8668.deps.json @@ -0,0 +1 @@ +{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "mbuddytest": "5a3d93d7860d5dc0", "main": "5e430ae5bf7af3a2", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/BuddyTest/output/c9f4be41ca1cc2b4.deps.json b/Test/BuddyTest/output/c9f4be41ca1cc2b4.deps.json new file mode 100644 index 0000000..bc39a3f --- /dev/null +++ b/Test/BuddyTest/output/c9f4be41ca1cc2b4.deps.json @@ -0,0 +1 @@ +{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "mbuddytest": "5a3d93d7860d5dc0", "main": "5e430ae5bf7af3a2", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/BuddyTest/output/f6b51804a0ba8ff0.deps.json b/Test/BuddyTest/output/f6b51804a0ba8ff0.deps.json new file mode 100644 index 0000000..bc39a3f --- /dev/null +++ b/Test/BuddyTest/output/f6b51804a0ba8ff0.deps.json @@ -0,0 +1 @@ +{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "mbuddytest": "5a3d93d7860d5dc0", "main": "5e430ae5bf7af3a2", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/BuddyTest/temp/4f218f56e4225fcd.doc.json b/Test/BuddyTest/temp/5a3d93d7860d5dc0.doc.json similarity index 100% rename from Test/BuddyTest/temp/4f218f56e4225fcd.doc.json rename to Test/BuddyTest/temp/5a3d93d7860d5dc0.doc.json diff --git a/Test/BuddyTest/temp/4f218f56e4225fcd.pyi b/Test/BuddyTest/temp/5a3d93d7860d5dc0.pyi similarity index 96% rename from Test/BuddyTest/temp/4f218f56e4225fcd.pyi rename to Test/BuddyTest/temp/5a3d93d7860d5dc0.pyi index 4818193..3de0cb1 100644 --- a/Test/BuddyTest/temp/4f218f56e4225fcd.pyi +++ b/Test/BuddyTest/temp/5a3d93d7860d5dc0.pyi @@ -9,7 +9,6 @@ from t import CInt, CPtr, CChar, CUInt8T, CUInt32T, CUInt64T, CSizeT import viperlib import viperio import stdlib -import stdio import memhub import string import testcheck diff --git a/Test/BuddyTest/temp/47775d5e50909338.pyi b/Test/BuddyTest/temp/754640ce30cfebcc.pyi similarity index 100% rename from Test/BuddyTest/temp/47775d5e50909338.pyi rename to Test/BuddyTest/temp/754640ce30cfebcc.pyi diff --git a/Test/BuddyTest/temp/_phase1_manifest.json b/Test/BuddyTest/temp/_phase1_manifest.json index 4397846..4c1ee71 100644 --- a/Test/BuddyTest/temp/_phase1_manifest.json +++ b/Test/BuddyTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\BuddyTest\\App\\main.py": {"sha1": "5e430ae5bf7af3a2", "mtime": 1782224154.785576, "size": 260}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\BuddyTest\\App\\mbuddytest.py": {"sha1": "4f218f56e4225fcd", "mtime": 1784470903.9319332, "size": 19898}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "47775d5e50909338", "mtime": 1784464283.860502, "size": 19750}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.py": {"sha1": "71e0a3ffcb3ebfad", "mtime": 1781258888.113146, "size": 277}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784464295.903657, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784387475.6951904, "size": 10395}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784375629.8057406, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.py": {"sha1": "1d40c4bdc94641c5", "mtime": 1784470563.362105, "size": 56865}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32process.py": {"sha1": "067c78e9f121dce3", "mtime": 1781200703.5409546, "size": 4802}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32sync.py": {"sha1": "06f53cc594b4ac6c", "mtime": 1782297500.2581685, "size": 4726}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\BuddyTest\\App\\main.py": {"sha1": "5e430ae5bf7af3a2", "mtime": 1782224154.785576, "size": 260}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\BuddyTest\\App\\mbuddytest.py": {"sha1": "5a3d93d7860d5dc0", "mtime": 1784566611.8525434, "size": 19514}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "754640ce30cfebcc", "mtime": 1784566611.8434613, "size": 20300}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.py": {"sha1": "71e0a3ffcb3ebfad", "mtime": 1781258888.113146, "size": 277}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784566611.8280091, "size": 10395}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.py": {"sha1": "c3b259b4059f8668", "mtime": 1784566611.8459883, "size": 56772}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32process.py": {"sha1": "067c78e9f121dce3", "mtime": 1781200703.5409546, "size": 4802}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32sync.py": {"sha1": "06f53cc594b4ac6c", "mtime": 1782297500.2581685, "size": 4726}} \ No newline at end of file diff --git a/Test/BuddyTest/temp/_sha1_map.txt b/Test/BuddyTest/temp/_sha1_map.txt index fba4517..5b1a34f 100644 --- a/Test/BuddyTest/temp/_sha1_map.txt +++ b/Test/BuddyTest/temp/_sha1_map.txt @@ -1,16 +1,16 @@ 067c78e9f121dce3:includes/w32\win32process.py 06f53cc594b4ac6c:includes/w32\win32sync.py 14d33679f7fadf1f:includes/testcheck.py -1d40c4bdc94641c5:includes/viperlib.py 271ea3decb810db2:includes/atom.py -47775d5e50909338:includes/memhub.py -4f218f56e4225fcd:mbuddytest.py +5a3d93d7860d5dc0:mbuddytest.py 5e430ae5bf7af3a2:main.py 6f62fe05c5ea1ceb:includes/stdio.py 71e0a3ffcb3ebfad:includes/stdarg.py +754640ce30cfebcc:includes/memhub.py 7e529fe7a078cfef:includes/w32\win32base.py 90c53dd6db8d41cf:includes/stdlib.py 9474791561654346:includes/string.py bbdf3bbd4c3bc28c:includes/w32\win32console.py +c3b259b4059f8668:includes/viperlib.py c9f4be41ca1cc2b4:includes/viperio.py f5522571bcce7bcb:includes/stdint.py diff --git a/Test/BuddyTest/temp/_shared_sym.json b/Test/BuddyTest/temp/_shared_sym.json index a1082a07210254584b3dc5a507c32674f6d6ff71..eb2e7180d25de5cff7ff66e013d2ad5ab19f4f25 100644 GIT binary patch delta 54160 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 diff --git a/Test/BuddyTest/temp/1d40c4bdc94641c5.pyi b/Test/BuddyTest/temp/c3b259b4059f8668.pyi similarity index 98% rename from Test/BuddyTest/temp/1d40c4bdc94641c5.pyi rename to Test/BuddyTest/temp/c3b259b4059f8668.pyi index 597cc07..67ff4ce 100644 --- a/Test/BuddyTest/temp/1d40c4bdc94641c5.pyi +++ b/Test/BuddyTest/temp/c3b259b4059f8668.pyi @@ -6,7 +6,6 @@ Module: viperlib import t, c import viperio -import stdio from stdarg import arg, va_arg TEMP_BUF_SIZE: t.CDefine = 68 diff --git a/Test/BuiltinDecoratorTest/temp/_phase1_manifest.json b/Test/BuiltinDecoratorTest/temp/_phase1_manifest.json index cee011d..ab7687f 100644 --- a/Test/BuiltinDecoratorTest/temp/_phase1_manifest.json +++ b/Test/BuiltinDecoratorTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\BuiltinDecoratorTest\\App\\main.py": {"sha1": "e3ac223bdaf94a0c", "mtime": 1782110312.4550886, "size": 8488}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784464295.903657, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784375629.8057406, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\BuiltinDecoratorTest\\App\\main.py": {"sha1": "e3ac223bdaf94a0c", "mtime": 1782110312.4550886, "size": 8488}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/CPythonTest/temp/_phase1_manifest.json b/Test/CPythonTest/temp/_phase1_manifest.json index d411b38..be25cf6 100644 --- a/Test/CPythonTest/temp/_phase1_manifest.json +++ b/Test/CPythonTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\CPythonTest\\App\\cpython.py": {"sha1": "7c5d5ec59c5fb0a8", "mtime": 1781613876.1585274, "size": 39169}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\CPythonTest\\App\\main.py": {"sha1": "fb6cea4f70fade7a", "mtime": 1782403889.06048, "size": 13919}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784375629.8057406, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\CPythonTest\\App\\cpython.py": {"sha1": "7c5d5ec59c5fb0a8", "mtime": 1781613876.1585274, "size": 39169}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\CPythonTest\\App\\main.py": {"sha1": "fb6cea4f70fade7a", "mtime": 1782403889.06048, "size": 13919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/CPythonTest/temp/_shared_sym.json b/Test/CPythonTest/temp/_shared_sym.json index 6d8b37154ac2b7f8ba38dec0bb7b1506be85bb6d..087d56946584a5aefda2571cca09a8e0ad662f9e 100644 GIT binary patch delta 48099 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 diff --git a/Test/ClosureTest/temp/_phase1_manifest.json b/Test/ClosureTest/temp/_phase1_manifest.json index 08588c9..a8b8ebf 100644 --- a/Test/ClosureTest/temp/_phase1_manifest.json +++ b/Test/ClosureTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ClosureTest\\App\\main.py": {"sha1": "52e6b51da061882f", "mtime": 1782266177.611862, "size": 5497}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784375629.8057406, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ClosureTest\\App\\main.py": {"sha1": "52e6b51da061882f", "mtime": 1782266177.611862, "size": 5497}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/ClosureTest2/temp/_phase1_manifest.json b/Test/ClosureTest2/temp/_phase1_manifest.json index 3bc899e..6ad4452 100644 --- a/Test/ClosureTest2/temp/_phase1_manifest.json +++ b/Test/ClosureTest2/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ClosureTest2\\App\\main.py": {"sha1": "440f18f9dce85a95", "mtime": 1782266179.2717218, "size": 7586}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784375629.8057406, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ClosureTest2\\App\\main.py": {"sha1": "440f18f9dce85a95", "mtime": 1782266179.2717218, "size": 7586}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/DecoratorMarkerTest/temp/_phase1_manifest.json b/Test/DecoratorMarkerTest/temp/_phase1_manifest.json index 48674f2..4f26cd4 100644 --- a/Test/DecoratorMarkerTest/temp/_phase1_manifest.json +++ b/Test/DecoratorMarkerTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\DecoratorMarkerTest\\App\\main.py": {"sha1": "b1122357fee8fd68", "mtime": 1782110269.7636156, "size": 1840}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784375629.8057406, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\DecoratorMarkerTest\\App\\main.py": {"sha1": "b1122357fee8fd68", "mtime": 1782110269.7636156, "size": 1840}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/DecoratorTest/temp/_phase1_manifest.json b/Test/DecoratorTest/temp/_phase1_manifest.json index 963980f..c427530 100644 --- a/Test/DecoratorTest/temp/_phase1_manifest.json +++ b/Test/DecoratorTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\DecoratorTest\\App\\main.py": {"sha1": "814e6b31adfc6256", "mtime": 1782110086.8867075, "size": 10275}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784375629.8057406, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\DecoratorTest\\App\\main.py": {"sha1": "814e6b31adfc6256", "mtime": 1782110086.8867075, "size": 10275}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/DictTest/output/20cd49775c100a38.deps.json b/Test/DictTest/output/20cd49775c100a38.deps.json index 03a20ec..7de6e79 100644 --- a/Test/DictTest/output/20cd49775c100a38.deps.json +++ b/Test/DictTest/output/20cd49775c100a38.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "memhub": "47775d5e50909338", "json.__init__": "57288496f7c2d1ad", "__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "main": "b3c2b99b6f3be4c7", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "_dict": "e3e7b6de8d7d8b03", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"testcheck": "14d33679f7fadf1f", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "json.__init__": "57288496f7c2d1ad", "__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "stdio": "6f62fe05c5ea1ceb", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "main": "b3c2b99b6f3be4c7", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "_dict": "e3e7b6de8d7d8b03", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/DictTest/output/240a9a4157959a9f.deps.json b/Test/DictTest/output/240a9a4157959a9f.deps.json index 03a20ec..7de6e79 100644 --- a/Test/DictTest/output/240a9a4157959a9f.deps.json +++ b/Test/DictTest/output/240a9a4157959a9f.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "memhub": "47775d5e50909338", "json.__init__": "57288496f7c2d1ad", "__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "main": "b3c2b99b6f3be4c7", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "_dict": "e3e7b6de8d7d8b03", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"testcheck": "14d33679f7fadf1f", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "json.__init__": "57288496f7c2d1ad", "__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "stdio": "6f62fe05c5ea1ceb", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "main": "b3c2b99b6f3be4c7", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "_dict": "e3e7b6de8d7d8b03", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/DictTest/output/57288496f7c2d1ad.deps.json b/Test/DictTest/output/57288496f7c2d1ad.deps.json index 03a20ec..7de6e79 100644 --- a/Test/DictTest/output/57288496f7c2d1ad.deps.json +++ b/Test/DictTest/output/57288496f7c2d1ad.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "memhub": "47775d5e50909338", "json.__init__": "57288496f7c2d1ad", "__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "main": "b3c2b99b6f3be4c7", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "_dict": "e3e7b6de8d7d8b03", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"testcheck": "14d33679f7fadf1f", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "json.__init__": "57288496f7c2d1ad", "__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "stdio": "6f62fe05c5ea1ceb", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "main": "b3c2b99b6f3be4c7", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "_dict": "e3e7b6de8d7d8b03", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/DictTest/output/_shared_sym_includes.pickle b/Test/DictTest/output/_shared_sym_includes.pickle index 8d2ffa67b44b3e6f11f639f998dda7702062ba35..02e77470d54aa903e017af92447959bba0db8928 100644 GIT binary patch delta 48482 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 DgcjU* delta 2275 zcmZveTWnKx9LIZ3*YcwRcA=x2mDOdqF=XAj_M8g1fr~!Ky53f{b_%EGl316q074`h zA~8YJCU`0Qje)EdmJkAn>By0x$sU}SghYKXBpM$`xR`i}*$ZBH@T~25>Hq)K|M&B| z{x83i&fnZJd$0HE-!0TIqTX?Cs%~`Mch=W(b;s&o9ePo%I5B` zsmqN7DKmPDTIjajhW?{C-WC@_^xd}_0$uu??lkXK>62iaEt0xP4V%^uU!dzyMpo)0 z=wZS6n(cMD=$y;gNv!l6(HArY==-B|3VnCa`G~phSLfo>4Tlr%?iSPC?b08!!_Vz- z1+%vJ_e0m)$8E6?aNoLai*J8)bEj;czNBUjljMG!2uob62jFL)vV-UtSi~3{WN7FIz;dvHgumN4L!f?}{F$mzaBMvN~L?{k{ zR{SVW#9@Ho9V>f$=#x0O(QPXZFR~^9AwpPZ0s_cLKrbF~HUaqfp*soSao^q~^y5@Z z!cLrCOOojMETxatu4ed3i_Rj2|DditnuNZxL z-m~6cTNb;TUD3iAJck$areO%D`_eFs)A=;%5&o4XZDQLVkO`N!yRD@Io!vt^qMyhS zgBz@f?c<~=IxtS^=gK%l@ZKMcgFxsf*xuqt$qDe|5l1Ir6Hc#8Kp#%;PmqQ-m?2&I zOBqtvA6b;p-_?xuq4+%m9R%AS8Ec^Xv!sEJXGu?}K%`4q(mwymlDZTpA%yS#;3Tj( zohSL4%agD@%(0PQ$63ed+k`-To5oH_9F^dX~^KlA>|r@Pq! zEf#>mlASJEliloU#*47_kn{SoFSyx0(W@U-z z1i{cOh}H!??Z*s`l?^eh3mhjJ>IyG*0V%gzsJg+=jmM) K^P93~%Jo0KC~M; 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 diff --git a/Test/DocTest/temp/_phase1_manifest.json b/Test/DocTest/temp/_phase1_manifest.json index bca0a48..45cfc15 100644 --- a/Test/DocTest/temp/_phase1_manifest.json +++ b/Test/DocTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\DocTest\\App\\main.py": {"sha1": "14a9b576ab5d21c9", "mtime": 1782474568.0454285, "size": 2162}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\DocTest\\App\\remote.py": {"sha1": "f26d7266c4f8762b", "mtime": 1782397989.7183921, "size": 271}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784387475.6951904, "size": 10395}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784375629.8057406, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\DocTest\\App\\main.py": {"sha1": "14a9b576ab5d21c9", "mtime": 1782474568.0454285, "size": 2162}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\DocTest\\App\\remote.py": {"sha1": "f26d7266c4f8762b", "mtime": 1782397989.7183921, "size": 271}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784566611.8280091, "size": 10395}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/DocTest/temp/_shared_sym.json b/Test/DocTest/temp/_shared_sym.json index f15de3e0fe6805c4a3fab92fc747ecb8abe19fe0..848d49765de70e169de3df7574a549d9449a8611 100644 GIT binary patch delta 48180 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 On{{SNZx1@&$oU_D(VRm7 diff --git a/Test/FakeDuckTest/temp/47775d5e50909338.pyi b/Test/FakeDuckTest/temp/754640ce30cfebcc.pyi similarity index 100% rename from Test/FakeDuckTest/temp/47775d5e50909338.pyi rename to Test/FakeDuckTest/temp/754640ce30cfebcc.pyi diff --git a/Test/FakeDuckTest/temp/_phase1_manifest.json b/Test/FakeDuckTest/temp/_phase1_manifest.json index 3de3eeb..6004d6f 100644 --- a/Test/FakeDuckTest/temp/_phase1_manifest.json +++ b/Test/FakeDuckTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\FakeDuckTest\\App\\main.py": {"sha1": "48352329f97d0858", "mtime": 1784436314.871797, "size": 12227}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\_fakeduck.py": {"sha1": "79b337e5ea8951e2", "mtime": 1784451276.719043, "size": 9717}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\_list.py": {"sha1": "668790e6c9efdbae", "mtime": 1784451276.719043, "size": 3219}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\_withcontent.py": {"sha1": "5b2e220c5bae60c9", "mtime": 1782475015.06193, "size": 2039}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "47775d5e50909338", "mtime": 1784464283.860502, "size": 19750}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784464295.903657, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784387475.6951904, "size": 10395}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784375629.8057406, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32process.py": {"sha1": "067c78e9f121dce3", "mtime": 1781200703.5409546, "size": 4802}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\FakeDuckTest\\App\\main.py": {"sha1": "48352329f97d0858", "mtime": 1784566611.8459883, "size": 12227}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\_fakeduck.py": {"sha1": "79b337e5ea8951e2", "mtime": 1784566611.8311827, "size": 9717}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\_list.py": {"sha1": "668790e6c9efdbae", "mtime": 1784566611.8525434, "size": 3219}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\_withcontent.py": {"sha1": "5b2e220c5bae60c9", "mtime": 1782475015.06193, "size": 2039}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "754640ce30cfebcc", "mtime": 1784566611.8434613, "size": 20300}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784566611.8280091, "size": 10395}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32process.py": {"sha1": "067c78e9f121dce3", "mtime": 1781200703.5409546, "size": 4802}} \ No newline at end of file diff --git a/Test/FakeDuckTest/temp/_sha1_map.txt b/Test/FakeDuckTest/temp/_sha1_map.txt index 19f2de1..61f9177 100644 --- a/Test/FakeDuckTest/temp/_sha1_map.txt +++ b/Test/FakeDuckTest/temp/_sha1_map.txt @@ -1,11 +1,11 @@ 067c78e9f121dce3:includes/w32\win32process.py 14d33679f7fadf1f:includes/testcheck.py 271ea3decb810db2:includes/atom.py -47775d5e50909338:includes/memhub.py 48352329f97d0858:main.py 5b2e220c5bae60c9:includes/_withcontent.py 668790e6c9efdbae:includes/_list.py 6f62fe05c5ea1ceb:includes/stdio.py +754640ce30cfebcc:includes/memhub.py 79b337e5ea8951e2:includes/_fakeduck.py 7e529fe7a078cfef:includes/w32\win32base.py 90c53dd6db8d41cf:includes/stdlib.py diff --git a/Test/ForAndLoopTest/output/6deb1a24b47f47fc.deps.json b/Test/ForAndLoopTest/output/6deb1a24b47f47fc.deps.json index 6ea9ae7..d097605 100644 --- a/Test/ForAndLoopTest/output/6deb1a24b47f47fc.deps.json +++ b/Test/ForAndLoopTest/output/6deb1a24b47f47fc.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "memhub": "47775d5e50909338", "_list": "668790e6c9efdbae", "stdio": "6f62fe05c5ea1ceb", "_fakeduck": "79b337e5ea8951e2", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "_list": "668790e6c9efdbae", "stdio": "6f62fe05c5ea1ceb", "memhub": "754640ce30cfebcc", "_fakeduck": "79b337e5ea8951e2", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb"} \ No newline at end of file diff --git a/Test/ForAndLoopTest/temp/47775d5e50909338.pyi b/Test/ForAndLoopTest/temp/754640ce30cfebcc.pyi similarity index 100% rename from Test/ForAndLoopTest/temp/47775d5e50909338.pyi rename to Test/ForAndLoopTest/temp/754640ce30cfebcc.pyi diff --git a/Test/ForAndLoopTest/temp/_phase1_manifest.json b/Test/ForAndLoopTest/temp/_phase1_manifest.json index 0866c6a..16e64a5 100644 --- a/Test/ForAndLoopTest/temp/_phase1_manifest.json +++ b/Test/ForAndLoopTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ForAndLoopTest\\App\\main.py": {"sha1": "6deb1a24b47f47fc", "mtime": 1782827984.6760156, "size": 4951}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\_fakeduck.py": {"sha1": "79b337e5ea8951e2", "mtime": 1784451276.719043, "size": 9717}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\_list.py": {"sha1": "668790e6c9efdbae", "mtime": 1784451276.719043, "size": 3219}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "47775d5e50909338", "mtime": 1784464283.860502, "size": 19750}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784464295.903657, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784387475.6951904, "size": 10395}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784375629.8057406, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ForAndLoopTest\\App\\main.py": {"sha1": "6deb1a24b47f47fc", "mtime": 1782827984.6760156, "size": 4951}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\_fakeduck.py": {"sha1": "79b337e5ea8951e2", "mtime": 1784566611.8311827, "size": 9717}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\_list.py": {"sha1": "668790e6c9efdbae", "mtime": 1784566611.8525434, "size": 3219}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "754640ce30cfebcc", "mtime": 1784566611.8434613, "size": 20300}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784566611.8280091, "size": 10395}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/ForAndLoopTest/temp/_sha1_map.txt b/Test/ForAndLoopTest/temp/_sha1_map.txt index aad2d65..ffb15dc 100644 --- a/Test/ForAndLoopTest/temp/_sha1_map.txt +++ b/Test/ForAndLoopTest/temp/_sha1_map.txt @@ -1,9 +1,9 @@ 14d33679f7fadf1f:includes/testcheck.py 271ea3decb810db2:includes/atom.py -47775d5e50909338:includes/memhub.py 668790e6c9efdbae:includes/_list.py 6deb1a24b47f47fc:main.py 6f62fe05c5ea1ceb:includes/stdio.py +754640ce30cfebcc:includes/memhub.py 79b337e5ea8951e2:includes/_fakeduck.py 7e529fe7a078cfef:includes/w32\win32base.py 90c53dd6db8d41cf:includes/stdlib.py diff --git a/Test/FormatStringTest/temp/_phase1_manifest.json b/Test/FormatStringTest/temp/_phase1_manifest.json index 923c478..9490724 100644 --- a/Test/FormatStringTest/temp/_phase1_manifest.json +++ b/Test/FormatStringTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\FormatStringTest\\App\\main.py": {"sha1": "cdff0d7b58fc935b", "mtime": 1782266179.3674748, "size": 1498}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ctraits.pyi": {"sha1": "42ced27d9e76aef5", "mtime": 1782216490.489452, "size": 572}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784375629.8057406, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\FormatStringTest\\App\\main.py": {"sha1": "cdff0d7b58fc935b", "mtime": 1782266179.3674748, "size": 1498}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ctraits.pyi": {"sha1": "42ced27d9e76aef5", "mtime": 1782216490.489452, "size": 572}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/FuncTest/temp/_phase1_manifest.json b/Test/FuncTest/temp/_phase1_manifest.json index a5c192b..54c9e29 100644 --- a/Test/FuncTest/temp/_phase1_manifest.json +++ b/Test/FuncTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\FuncTest\\App\\main.py": {"sha1": "067f811511854c88", "mtime": 1784309886.7278845, "size": 3098}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784375629.8057406, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32memory.py": {"sha1": "72e2d5ccb7cedcf1", "mtime": 1781200703.5389092, "size": 3142}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\FuncTest\\App\\main.py": {"sha1": "067f811511854c88", "mtime": 1784566611.842932, "size": 3098}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32memory.py": {"sha1": "72e2d5ccb7cedcf1", "mtime": 1781200703.5389092, "size": 3142}} \ No newline at end of file diff --git a/Test/GenericTest/temp/_phase1_manifest.json b/Test/GenericTest/temp/_phase1_manifest.json index 216e39a..554a7c1 100644 --- a/Test/GenericTest/temp/_phase1_manifest.json +++ b/Test/GenericTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\GenericTest\\App\\main.py": {"sha1": "16e1f65b154831e8", "mtime": 1782266275.0221426, "size": 5369}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784375629.8057406, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\GenericTest\\App\\main.py": {"sha1": "16e1f65b154831e8", "mtime": 1782266275.0221426, "size": 5369}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/GenericTest2/temp/_phase1_manifest.json b/Test/GenericTest2/temp/_phase1_manifest.json index b6046b7..04740bb 100644 --- a/Test/GenericTest2/temp/_phase1_manifest.json +++ b/Test/GenericTest2/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\GenericTest2\\App\\main.py": {"sha1": "bdfc8bd243b7e5b7", "mtime": 1782479447.3739374, "size": 8453}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784375629.8057406, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\GenericTest2\\App\\main.py": {"sha1": "bdfc8bd243b7e5b7", "mtime": 1782479447.3739374, "size": 8453}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/HashTableTest/output/02d833b3cf571c5b.deps.json b/Test/HashTableTest/output/02d833b3cf571c5b.deps.json index 60ada9c..bd2cea1 100644 --- a/Test/HashTableTest/output/02d833b3cf571c5b.deps.json +++ b/Test/HashTableTest/output/02d833b3cf571c5b.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "memhub": "47775d5e50909338", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "stdio": "6f62fe05c5ea1ceb", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb"} \ No newline at end of file diff --git a/Test/HashTableTest/temp/47775d5e50909338.pyi b/Test/HashTableTest/temp/754640ce30cfebcc.pyi similarity index 100% rename from Test/HashTableTest/temp/47775d5e50909338.pyi rename to Test/HashTableTest/temp/754640ce30cfebcc.pyi diff --git a/Test/HashTableTest/temp/_phase1_manifest.json b/Test/HashTableTest/temp/_phase1_manifest.json index b65b43c..eb649e6 100644 --- a/Test/HashTableTest/temp/_phase1_manifest.json +++ b/Test/HashTableTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\HashTableTest\\App\\main.py": {"sha1": "02d833b3cf571c5b", "mtime": 1782828002.1143503, "size": 7795}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashtable.py": {"sha1": "b8c66c8ff44eb874", "mtime": 1782826619.490043, "size": 9385}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "47775d5e50909338", "mtime": 1784464283.860502, "size": 19750}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784464295.903657, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784387475.6951904, "size": 10395}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784375629.8057406, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\HashTableTest\\App\\main.py": {"sha1": "02d833b3cf571c5b", "mtime": 1782828002.1143503, "size": 7795}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashtable.py": {"sha1": "b8c66c8ff44eb874", "mtime": 1782826619.490043, "size": 9385}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "754640ce30cfebcc", "mtime": 1784566611.8434613, "size": 20300}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784566611.8280091, "size": 10395}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/HashTableTest/temp/_sha1_map.txt b/Test/HashTableTest/temp/_sha1_map.txt index 40ce84e..1203e06 100644 --- a/Test/HashTableTest/temp/_sha1_map.txt +++ b/Test/HashTableTest/temp/_sha1_map.txt @@ -1,8 +1,8 @@ 02d833b3cf571c5b:main.py 14d33679f7fadf1f:includes/testcheck.py 271ea3decb810db2:includes/atom.py -47775d5e50909338:includes/memhub.py 6f62fe05c5ea1ceb:includes/stdio.py +754640ce30cfebcc:includes/memhub.py 7e529fe7a078cfef:includes/w32\win32base.py 90c53dd6db8d41cf:includes/stdlib.py 9474791561654346:includes/string.py diff --git a/Test/IterTest/temp/_phase1_manifest.json b/Test/IterTest/temp/_phase1_manifest.json index 4510ecc..b1759d4 100644 --- a/Test/IterTest/temp/_phase1_manifest.json +++ b/Test/IterTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\IterTest\\App\\main.py": {"sha1": "6b8853854d6ef556", "mtime": 1782474645.4172094, "size": 1600}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784387475.6951904, "size": 10395}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784375629.8057406, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32memory.py": {"sha1": "72e2d5ccb7cedcf1", "mtime": 1781200703.5389092, "size": 3142}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\IterTest\\App\\main.py": {"sha1": "6b8853854d6ef556", "mtime": 1782474645.4172094, "size": 1600}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784566611.8280091, "size": 10395}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32memory.py": {"sha1": "72e2d5ccb7cedcf1", "mtime": 1781200703.5389092, "size": 3142}} \ No newline at end of file diff --git a/Test/JsonTest/output/8a97754e9e3c2b9a.deps.json b/Test/JsonTest/output/8a97754e9e3c2b9a.deps.json index 849e897..8495ed2 100644 --- a/Test/JsonTest/output/8a97754e9e3c2b9a.deps.json +++ b/Test/JsonTest/output/8a97754e9e3c2b9a.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "memhub": "47775d5e50909338", "json.__init__": "57288496f7c2d1ad", "__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "stdio": "6f62fe05c5ea1ceb", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"testcheck": "14d33679f7fadf1f", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "json.__init__": "57288496f7c2d1ad", "__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "stdio": "6f62fe05c5ea1ceb", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb"} \ No newline at end of file diff --git a/Test/JsonTest/temp/47775d5e50909338.pyi b/Test/JsonTest/temp/754640ce30cfebcc.pyi similarity index 100% rename from Test/JsonTest/temp/47775d5e50909338.pyi rename to Test/JsonTest/temp/754640ce30cfebcc.pyi diff --git a/Test/JsonTest/temp/_phase1_manifest.json b/Test/JsonTest/temp/_phase1_manifest.json index 726b1a8..1b4e69c 100644 --- a/Test/JsonTest/temp/_phase1_manifest.json +++ b/Test/JsonTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\JsonTest\\App\\main.py": {"sha1": "8a97754e9e3c2b9a", "mtime": 1782828053.1672907, "size": 14025}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\json\\__init__.py": {"sha1": "57288496f7c2d1ad", "mtime": 1783239811.8873823, "size": 7653}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\json\\__parser.py": {"sha1": "240a9a4157959a9f", "mtime": 1782826918.100951, "size": 7517}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\json\\__writer.py": {"sha1": "20cd49775c100a38", "mtime": 1782826901.8906734, "size": 3784}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "47775d5e50909338", "mtime": 1784464283.860502, "size": 19750}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784387475.6951904, "size": 10395}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784375629.8057406, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32memory.py": {"sha1": "72e2d5ccb7cedcf1", "mtime": 1781200703.5389092, "size": 3142}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\JsonTest\\App\\main.py": {"sha1": "8a97754e9e3c2b9a", "mtime": 1782828053.1672907, "size": 14025}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\json\\__init__.py": {"sha1": "57288496f7c2d1ad", "mtime": 1783239811.8873823, "size": 7653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\json\\__parser.py": {"sha1": "240a9a4157959a9f", "mtime": 1782826918.100951, "size": 7517}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\json\\__writer.py": {"sha1": "20cd49775c100a38", "mtime": 1782826901.8906734, "size": 3784}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "754640ce30cfebcc", "mtime": 1784566611.8434613, "size": 20300}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784566611.8280091, "size": 10395}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32memory.py": {"sha1": "72e2d5ccb7cedcf1", "mtime": 1781200703.5389092, "size": 3142}} \ No newline at end of file diff --git a/Test/JsonTest/temp/_sha1_map.txt b/Test/JsonTest/temp/_sha1_map.txt index 0ffcb3a..e7eab5c 100644 --- a/Test/JsonTest/temp/_sha1_map.txt +++ b/Test/JsonTest/temp/_sha1_map.txt @@ -2,10 +2,10 @@ 20cd49775c100a38:includes/json\__writer.py 240a9a4157959a9f:includes/json\__parser.py 271ea3decb810db2:includes/atom.py -47775d5e50909338:includes/memhub.py 57288496f7c2d1ad:includes/json\__init__.py 6f62fe05c5ea1ceb:includes/stdio.py 72e2d5ccb7cedcf1:includes/w32\win32memory.py +754640ce30cfebcc:includes/memhub.py 7e529fe7a078cfef:includes/w32\win32base.py 8a97754e9e3c2b9a:main.py 9474791561654346:includes/string.py diff --git a/Test/LLvmLiteTest/output/15f1ded02f3aa5bc.deps.json b/Test/LLvmLiteTest/output/15f1ded02f3aa5bc.deps.json deleted file mode 100644 index c506b84..0000000 --- a/Test/LLvmLiteTest/output/15f1ded02f3aa5bc.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"testcheck": "14d33679f7fadf1f", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "viperlib": "1d40c4bdc94641c5", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "atom": "271ea3decb810db2", "linkedlist": "2d39c6c7d3557b3e", "memhub": "47775d5e50909338", "main": "5b8cf12a5862b640", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "stdlib": "90c53dd6db8d41cf", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "llvmlite.__init__": "95394ca8da0f655a", "__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file diff --git a/Test/LLvmLiteTest/output/21a7fcfc665f75ef.deps.json b/Test/LLvmLiteTest/output/21a7fcfc665f75ef.deps.json deleted file mode 100644 index 06a411f..0000000 --- a/Test/LLvmLiteTest/output/21a7fcfc665f75ef.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"testcheck": "14d33679f7fadf1f", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "viperlib": "1d40c4bdc94641c5", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "atom": "271ea3decb810db2", "linkedlist": "2d39c6c7d3557b3e", "memhub": "47775d5e50909338", "main": "5b8cf12a5862b640", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "stdlib": "90c53dd6db8d41cf", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "llvmlite.__init__": "95394ca8da0f655a", "__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f", "__function.__types": "15f1ded02f3aa5bc"} \ No newline at end of file diff --git a/Test/LLvmLiteTest/output/2d39c6c7d3557b3e.deps.json b/Test/LLvmLiteTest/output/2d39c6c7d3557b3e.deps.json deleted file mode 100644 index c506b84..0000000 --- a/Test/LLvmLiteTest/output/2d39c6c7d3557b3e.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"testcheck": "14d33679f7fadf1f", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "viperlib": "1d40c4bdc94641c5", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "atom": "271ea3decb810db2", "linkedlist": "2d39c6c7d3557b3e", "memhub": "47775d5e50909338", "main": "5b8cf12a5862b640", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "stdlib": "90c53dd6db8d41cf", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "llvmlite.__init__": "95394ca8da0f655a", "__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file diff --git a/Test/LLvmLiteTest/output/5b8cf12a5862b640.deps.json b/Test/LLvmLiteTest/output/5b8cf12a5862b640.deps.json index 434e3ba..9d48a31 100644 --- a/Test/LLvmLiteTest/output/5b8cf12a5862b640.deps.json +++ b/Test/LLvmLiteTest/output/5b8cf12a5862b640.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "viperlib": "1d40c4bdc94641c5", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "atom": "271ea3decb810db2", "linkedlist": "2d39c6c7d3557b3e", "memhub": "47775d5e50909338", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "stdlib": "90c53dd6db8d41cf", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "llvmlite.__init__": "95394ca8da0f655a", "__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file +{"testcheck": "14d33679f7fadf1f", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "atom": "271ea3decb810db2", "linkedlist": "2d39c6c7d3557b3e", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "stdlib": "90c53dd6db8d41cf", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "llvmlite.__init__": "95394ca8da0f655a", "__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file diff --git a/Test/LLvmLiteTest/output/6b3bc463fd044545.deps.json b/Test/LLvmLiteTest/output/6b3bc463fd044545.deps.json deleted file mode 100644 index 63c170e..0000000 --- a/Test/LLvmLiteTest/output/6b3bc463fd044545.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"testcheck": "14d33679f7fadf1f", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "viperlib": "1d40c4bdc94641c5", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "atom": "271ea3decb810db2", "linkedlist": "2d39c6c7d3557b3e", "memhub": "47775d5e50909338", "main": "5b8cf12a5862b640", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "stdlib": "90c53dd6db8d41cf", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "llvmlite.__init__": "95394ca8da0f655a", "__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f", "__function.__types": "15f1ded02f3aa5bc", "__module.__types": "15f1ded02f3aa5bc", "__module.__function": "89b3965176cd2407"} \ No newline at end of file diff --git a/Test/LLvmLiteTest/output/89b3965176cd2407.deps.json b/Test/LLvmLiteTest/output/89b3965176cd2407.deps.json deleted file mode 100644 index c506b84..0000000 --- a/Test/LLvmLiteTest/output/89b3965176cd2407.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"testcheck": "14d33679f7fadf1f", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "viperlib": "1d40c4bdc94641c5", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "atom": "271ea3decb810db2", "linkedlist": "2d39c6c7d3557b3e", "memhub": "47775d5e50909338", "main": "5b8cf12a5862b640", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "stdlib": "90c53dd6db8d41cf", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "llvmlite.__init__": "95394ca8da0f655a", "__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file diff --git a/Test/LLvmLiteTest/output/946e087da91aaada.deps.json b/Test/LLvmLiteTest/output/946e087da91aaada.deps.json deleted file mode 100644 index a9c8e22..0000000 --- a/Test/LLvmLiteTest/output/946e087da91aaada.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"testcheck": "14d33679f7fadf1f", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "viperlib": "1d40c4bdc94641c5", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "atom": "271ea3decb810db2", "linkedlist": "2d39c6c7d3557b3e", "memhub": "47775d5e50909338", "main": "5b8cf12a5862b640", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "stdlib": "90c53dd6db8d41cf", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "llvmlite.__init__": "95394ca8da0f655a", "__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f", "__values.__types": "15f1ded02f3aa5bc", "__function.__types": "15f1ded02f3aa5bc"} \ No newline at end of file diff --git a/Test/LLvmLiteTest/output/95394ca8da0f655a.deps.json b/Test/LLvmLiteTest/output/95394ca8da0f655a.deps.json deleted file mode 100644 index 2f433e2..0000000 --- a/Test/LLvmLiteTest/output/95394ca8da0f655a.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"testcheck": "14d33679f7fadf1f", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "viperlib": "1d40c4bdc94641c5", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "atom": "271ea3decb810db2", "linkedlist": "2d39c6c7d3557b3e", "memhub": "47775d5e50909338", "main": "5b8cf12a5862b640", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "stdlib": "90c53dd6db8d41cf", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "llvmlite.__init__": "95394ca8da0f655a", "__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f", "__values.__types": "15f1ded02f3aa5bc", "__function.__types": "15f1ded02f3aa5bc", "__module.__types": "15f1ded02f3aa5bc", "__module.__function": "89b3965176cd2407", "__builder.__types": "15f1ded02f3aa5bc", "__builder.__values": "f9e36e2cd6fa659f", "__builder.__function": "89b3965176cd2407", "__verify.__function": "89b3965176cd2407", "__verify.__module": "21a7fcfc665f75ef"} \ No newline at end of file diff --git a/Test/LLvmLiteTest/output/_shared_sym_includes.pickle b/Test/LLvmLiteTest/output/_shared_sym_includes.pickle deleted file mode 100644 index c2254353595c089a1b474ceb87aa122a03da83b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 777309 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 A;Q#;t diff --git a/Test/LLvmLiteTest/output/f9e36e2cd6fa659f.deps.json b/Test/LLvmLiteTest/output/f9e36e2cd6fa659f.deps.json deleted file mode 100644 index c506b84..0000000 --- a/Test/LLvmLiteTest/output/f9e36e2cd6fa659f.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"testcheck": "14d33679f7fadf1f", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "viperlib": "1d40c4bdc94641c5", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "atom": "271ea3decb810db2", "linkedlist": "2d39c6c7d3557b3e", "memhub": "47775d5e50909338", "main": "5b8cf12a5862b640", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "stdlib": "90c53dd6db8d41cf", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "llvmlite.__init__": "95394ca8da0f655a", "__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file diff --git a/Test/LLvmLiteTest/temp/47775d5e50909338.pyi b/Test/LLvmLiteTest/temp/754640ce30cfebcc.pyi similarity index 100% rename from Test/LLvmLiteTest/temp/47775d5e50909338.pyi rename to Test/LLvmLiteTest/temp/754640ce30cfebcc.pyi diff --git a/Test/LLvmLiteTest/temp/_phase1_manifest.json b/Test/LLvmLiteTest/temp/_phase1_manifest.json index 5da4084..b8a8294 100644 --- a/Test/LLvmLiteTest/temp/_phase1_manifest.json +++ b/Test/LLvmLiteTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\LLvmLiteTest\\App\\main.py": {"sha1": "5b8cf12a5862b640", "mtime": 1784384536.040362, "size": 50855}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\linkedlist.py": {"sha1": "2d39c6c7d3557b3e", "mtime": 1782895405.2191627, "size": 16032}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__init__.py": {"sha1": "95394ca8da0f655a", "mtime": 1784089002.4168732, "size": 16338}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__builder.py": {"sha1": "946e087da91aaada", "mtime": 1784387312.9523027, "size": 48840}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__function.py": {"sha1": "89b3965176cd2407", "mtime": 1784456620.4280825, "size": 17010}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__module.py": {"sha1": "21a7fcfc665f75ef", "mtime": 1784216086.0677392, "size": 20058}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__types.py": {"sha1": "15f1ded02f3aa5bc", "mtime": 1784387290.644663, "size": 17996}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__values.py": {"sha1": "f9e36e2cd6fa659f", "mtime": 1784387299.9652681, "size": 6739}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__verify.py": {"sha1": "6b3bc463fd044545", "mtime": 1784387320.0367622, "size": 14751}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "47775d5e50909338", "mtime": 1784464283.860502, "size": 19750}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.py": {"sha1": "71e0a3ffcb3ebfad", "mtime": 1781258888.113146, "size": 277}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784464295.903657, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784387475.6951904, "size": 10395}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784375629.8057406, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.py": {"sha1": "1d40c4bdc94641c5", "mtime": 1784470563.362105, "size": 56865}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\LLvmLiteTest\\App\\main.py": {"sha1": "5b8cf12a5862b640", "mtime": 1784566611.833192, "size": 50855}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\linkedlist.py": {"sha1": "2d39c6c7d3557b3e", "mtime": 1782895405.2191627, "size": 16032}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__init__.py": {"sha1": "95394ca8da0f655a", "mtime": 1784089002.4168732, "size": 16338}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__builder.py": {"sha1": "946e087da91aaada", "mtime": 1784566611.8570871, "size": 48840}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__function.py": {"sha1": "89b3965176cd2407", "mtime": 1784566611.8606246, "size": 17010}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__module.py": {"sha1": "21a7fcfc665f75ef", "mtime": 1784216086.0677392, "size": 20058}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__types.py": {"sha1": "15f1ded02f3aa5bc", "mtime": 1784566611.8280091, "size": 17996}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__values.py": {"sha1": "f9e36e2cd6fa659f", "mtime": 1784566611.8301415, "size": 6739}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__verify.py": {"sha1": "6b3bc463fd044545", "mtime": 1784566611.82952, "size": 14751}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "754640ce30cfebcc", "mtime": 1784566611.8434613, "size": 20300}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.py": {"sha1": "71e0a3ffcb3ebfad", "mtime": 1781258888.113146, "size": 277}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784566611.8280091, "size": 10395}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.py": {"sha1": "c3b259b4059f8668", "mtime": 1784566611.8459883, "size": 56772}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/LLvmLiteTest/temp/_sha1_map.txt b/Test/LLvmLiteTest/temp/_sha1_map.txt index 847c1a6..c0630f1 100644 --- a/Test/LLvmLiteTest/temp/_sha1_map.txt +++ b/Test/LLvmLiteTest/temp/_sha1_map.txt @@ -1,14 +1,13 @@ 14d33679f7fadf1f:includes/testcheck.py 15f1ded02f3aa5bc:includes/llvmlite\__types.py -1d40c4bdc94641c5:includes/viperlib.py 21a7fcfc665f75ef:includes/llvmlite\__module.py 271ea3decb810db2:includes/atom.py 2d39c6c7d3557b3e:includes/linkedlist.py -47775d5e50909338:includes/memhub.py 5b8cf12a5862b640:main.py 6b3bc463fd044545:includes/llvmlite\__verify.py 6f62fe05c5ea1ceb:includes/stdio.py 71e0a3ffcb3ebfad:includes/stdarg.py +754640ce30cfebcc:includes/memhub.py 7e529fe7a078cfef:includes/w32\win32base.py 89b3965176cd2407:includes/llvmlite\__function.py 90c53dd6db8d41cf:includes/stdlib.py @@ -16,6 +15,7 @@ 9474791561654346:includes/string.py 95394ca8da0f655a:includes/llvmlite\__init__.py bbdf3bbd4c3bc28c:includes/w32\win32console.py +c3b259b4059f8668:includes/viperlib.py c9f4be41ca1cc2b4:includes/viperio.py f5522571bcce7bcb:includes/stdint.py f9e36e2cd6fa659f:includes/llvmlite\__values.py diff --git a/Test/NewAstTest/temp/1d40c4bdc94641c5.pyi b/Test/LLvmLiteTest/temp/c3b259b4059f8668.pyi similarity index 98% rename from Test/NewAstTest/temp/1d40c4bdc94641c5.pyi rename to Test/LLvmLiteTest/temp/c3b259b4059f8668.pyi index 597cc07..67ff4ce 100644 --- a/Test/NewAstTest/temp/1d40c4bdc94641c5.pyi +++ b/Test/LLvmLiteTest/temp/c3b259b4059f8668.pyi @@ -6,7 +6,6 @@ Module: viperlib import t, c import viperio -import stdio from stdarg import arg, va_arg TEMP_BUF_SIZE: t.CDefine = 68 diff --git a/Test/ListTest/output/1ff2c5eb32359e40.deps.json b/Test/ListTest/output/1ff2c5eb32359e40.deps.json index 41093d0..11c66e4 100644 --- a/Test/ListTest/output/1ff2c5eb32359e40.deps.json +++ b/Test/ListTest/output/1ff2c5eb32359e40.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "memhub": "47775d5e50909338", "_list": "668790e6c9efdbae", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "_list": "668790e6c9efdbae", "stdio": "6f62fe05c5ea1ceb", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb"} \ No newline at end of file diff --git a/Test/ListTest/temp/47775d5e50909338.pyi b/Test/ListTest/temp/754640ce30cfebcc.pyi similarity index 100% rename from Test/ListTest/temp/47775d5e50909338.pyi rename to Test/ListTest/temp/754640ce30cfebcc.pyi diff --git a/Test/ListTest/temp/_phase1_manifest.json b/Test/ListTest/temp/_phase1_manifest.json index 936f890..1692d9e 100644 --- a/Test/ListTest/temp/_phase1_manifest.json +++ b/Test/ListTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ListTest\\App\\main.py": {"sha1": "1ff2c5eb32359e40", "mtime": 1782828109.658356, "size": 2856}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\_list.py": {"sha1": "668790e6c9efdbae", "mtime": 1784451276.719043, "size": 3219}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "47775d5e50909338", "mtime": 1784464283.860502, "size": 19750}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784464295.903657, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784387475.6951904, "size": 10395}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784375629.8057406, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ListTest\\App\\main.py": {"sha1": "1ff2c5eb32359e40", "mtime": 1782828109.658356, "size": 2856}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\_list.py": {"sha1": "668790e6c9efdbae", "mtime": 1784566611.8525434, "size": 3219}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "754640ce30cfebcc", "mtime": 1784566611.8434613, "size": 20300}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784566611.8280091, "size": 10395}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/ListTest/temp/_sha1_map.txt b/Test/ListTest/temp/_sha1_map.txt index 28777bc..64a25df 100644 --- a/Test/ListTest/temp/_sha1_map.txt +++ b/Test/ListTest/temp/_sha1_map.txt @@ -1,9 +1,9 @@ 14d33679f7fadf1f:includes/testcheck.py 1ff2c5eb32359e40:main.py 271ea3decb810db2:includes/atom.py -47775d5e50909338:includes/memhub.py 668790e6c9efdbae:includes/_list.py 6f62fe05c5ea1ceb:includes/stdio.py +754640ce30cfebcc:includes/memhub.py 7e529fe7a078cfef:includes/w32\win32base.py 90c53dd6db8d41cf:includes/stdlib.py 9474791561654346:includes/string.py diff --git a/Test/LoopTest/temp/_phase1_manifest.json b/Test/LoopTest/temp/_phase1_manifest.json index 058e1f6..328058b 100644 --- a/Test/LoopTest/temp/_phase1_manifest.json +++ b/Test/LoopTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\LoopTest\\App\\main.py": {"sha1": "86e203c56ae4de20", "mtime": 1782109374.0530808, "size": 2366}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784375629.8057406, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\LoopTest\\App\\main.py": {"sha1": "86e203c56ae4de20", "mtime": 1782109374.0530808, "size": 2366}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/MemhubTest/output/3ff210e50f345c7c.deps.json b/Test/MemhubTest/output/3ff210e50f345c7c.deps.json index dc01107..248458b 100644 --- a/Test/MemhubTest/output/3ff210e50f345c7c.deps.json +++ b/Test/MemhubTest/output/3ff210e50f345c7c.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "memhub": "47775d5e50909338", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "stdio": "6f62fe05c5ea1ceb", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb"} \ No newline at end of file diff --git a/Test/MemhubTest/temp/47775d5e50909338.pyi b/Test/MemhubTest/temp/754640ce30cfebcc.pyi similarity index 100% rename from Test/MemhubTest/temp/47775d5e50909338.pyi rename to Test/MemhubTest/temp/754640ce30cfebcc.pyi diff --git a/Test/MemhubTest/temp/_phase1_manifest.json b/Test/MemhubTest/temp/_phase1_manifest.json index abc623c..2b41e1b 100644 --- a/Test/MemhubTest/temp/_phase1_manifest.json +++ b/Test/MemhubTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\MemhubTest\\App\\main.py": {"sha1": "3ff210e50f345c7c", "mtime": 1784375438.1600194, "size": 3923}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "47775d5e50909338", "mtime": 1784464283.860502, "size": 19750}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784464295.903657, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784387475.6951904, "size": 10395}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784375629.8057406, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\MemhubTest\\App\\main.py": {"sha1": "3ff210e50f345c7c", "mtime": 1784566611.842932, "size": 3923}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "754640ce30cfebcc", "mtime": 1784566611.8434613, "size": 20300}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784566611.8280091, "size": 10395}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/MemhubTest/temp/_sha1_map.txt b/Test/MemhubTest/temp/_sha1_map.txt index 01b425e..f983121 100644 --- a/Test/MemhubTest/temp/_sha1_map.txt +++ b/Test/MemhubTest/temp/_sha1_map.txt @@ -1,8 +1,8 @@ 14d33679f7fadf1f:includes/testcheck.py 271ea3decb810db2:includes/atom.py 3ff210e50f345c7c:main.py -47775d5e50909338:includes/memhub.py 6f62fe05c5ea1ceb:includes/stdio.py +754640ce30cfebcc:includes/memhub.py 7e529fe7a078cfef:includes/w32\win32base.py 90c53dd6db8d41cf:includes/stdlib.py 9474791561654346:includes/string.py diff --git a/Test/NewAstTest/output/4175f14c5fbef360.deps.json b/Test/NewAstTest/output/4175f14c5fbef360.deps.json index 5e1e080..0eaf8fe 100644 --- a/Test/NewAstTest/output/4175f14c5fbef360.deps.json +++ b/Test/NewAstTest/output/4175f14c5fbef360.deps.json @@ -1 +1 @@ -{"ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "viperlib": "1d40c4bdc94641c5", "atom": "271ea3decb810db2", "ast.__init__": "34548789d646f432", "__init__": "34548789d646f432", "ast": "34548789d646f432", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "memhub": "47775d5e50909338", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "viperio": "c9f4be41ca1cc2b4", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "atom": "271ea3decb810db2", "ast.__init__": "34548789d646f432", "__init__": "34548789d646f432", "ast": "34548789d646f432", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "viperlib": "c3b259b4059f8668", "viperio": "c9f4be41ca1cc2b4", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb"} \ No newline at end of file diff --git a/Test/NewAstTest/temp/47775d5e50909338.pyi b/Test/NewAstTest/temp/754640ce30cfebcc.pyi similarity index 100% rename from Test/NewAstTest/temp/47775d5e50909338.pyi rename to Test/NewAstTest/temp/754640ce30cfebcc.pyi diff --git a/Test/NewAstTest/temp/_phase1_manifest.json b/Test/NewAstTest/temp/_phase1_manifest.json index 52c9d54..a15dc89 100644 --- a/Test/NewAstTest/temp/_phase1_manifest.json +++ b/Test/NewAstTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\NewAstTest\\App\\main.py": {"sha1": "4175f14c5fbef360", "mtime": 1783001020.789755, "size": 63423}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\_list.py": {"sha1": "668790e6c9efdbae", "mtime": 1784451276.719043, "size": 3219}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\__init__.py": {"sha1": "34548789d646f432", "mtime": 1784102404.6307266, "size": 3409}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\astaux.py": {"sha1": "4337fb260448bbe2", "mtime": 1784006094.7981195, "size": 11489}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\base.py": {"sha1": "5dab8cb390496d22", "mtime": 1784197698.3282094, "size": 14966}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\exprs.py": {"sha1": "47767b5026a8ee15", "mtime": 1783239758.809719, "size": 40615}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\lexer.py": {"sha1": "0c212981c180e7fb", "mtime": 1783400609.908198, "size": 23535}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\match.py": {"sha1": "4dd6b3f1427d1cc5", "mtime": 1782961799.8492737, "size": 12309}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\parser.py": {"sha1": "ee52c08239684346", "mtime": 1784102405.1933146, "size": 85445}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\stmts.py": {"sha1": "657e182b27c2a022", "mtime": 1783929993.759902, "size": 37926}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\tokens.py": {"sha1": "b547ac4f380bddb6", "mtime": 1783165480.469121, "size": 13722}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "47775d5e50909338", "mtime": 1784464283.860502, "size": 19750}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.py": {"sha1": "71e0a3ffcb3ebfad", "mtime": 1781258888.113146, "size": 277}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784464295.903657, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784387475.6951904, "size": 10395}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.py": {"sha1": "1d40c4bdc94641c5", "mtime": 1784470563.362105, "size": 56865}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\NewAstTest\\App\\main.py": {"sha1": "4175f14c5fbef360", "mtime": 1783001020.789755, "size": 63423}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\_list.py": {"sha1": "668790e6c9efdbae", "mtime": 1784566611.8525434, "size": 3219}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\__init__.py": {"sha1": "34548789d646f432", "mtime": 1784102404.6307266, "size": 3409}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\astaux.py": {"sha1": "4337fb260448bbe2", "mtime": 1784006094.7981195, "size": 11489}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\base.py": {"sha1": "5dab8cb390496d22", "mtime": 1784197698.3282094, "size": 14966}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\exprs.py": {"sha1": "47767b5026a8ee15", "mtime": 1783239758.809719, "size": 40615}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\lexer.py": {"sha1": "0c212981c180e7fb", "mtime": 1783400609.908198, "size": 23535}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\match.py": {"sha1": "4dd6b3f1427d1cc5", "mtime": 1782961799.8492737, "size": 12309}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\parser.py": {"sha1": "ee52c08239684346", "mtime": 1784102405.1933146, "size": 85445}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\stmts.py": {"sha1": "657e182b27c2a022", "mtime": 1783929993.759902, "size": 37926}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\tokens.py": {"sha1": "b547ac4f380bddb6", "mtime": 1783165480.469121, "size": 13722}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "754640ce30cfebcc", "mtime": 1784566611.8434613, "size": 20300}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.py": {"sha1": "71e0a3ffcb3ebfad", "mtime": 1781258888.113146, "size": 277}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784566611.8280091, "size": 10395}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.py": {"sha1": "c3b259b4059f8668", "mtime": 1784566611.8459883, "size": 56772}} \ No newline at end of file diff --git a/Test/NewAstTest/temp/_sha1_map.txt b/Test/NewAstTest/temp/_sha1_map.txt index 215eecb..fbba41f 100644 --- a/Test/NewAstTest/temp/_sha1_map.txt +++ b/Test/NewAstTest/temp/_sha1_map.txt @@ -1,20 +1,20 @@ 0c212981c180e7fb:includes/ast\lexer.py -1d40c4bdc94641c5:includes/viperlib.py 271ea3decb810db2:includes/atom.py 34548789d646f432:includes/ast\__init__.py 4175f14c5fbef360:main.py 4337fb260448bbe2:includes/ast\astaux.py 47767b5026a8ee15:includes/ast\exprs.py -47775d5e50909338:includes/memhub.py 4dd6b3f1427d1cc5:includes/ast\match.py 5dab8cb390496d22:includes/ast\base.py 657e182b27c2a022:includes/ast\stmts.py 668790e6c9efdbae:includes/_list.py 6f62fe05c5ea1ceb:includes/stdio.py 71e0a3ffcb3ebfad:includes/stdarg.py +754640ce30cfebcc:includes/memhub.py 90c53dd6db8d41cf:includes/stdlib.py 9474791561654346:includes/string.py b547ac4f380bddb6:includes/ast\tokens.py +c3b259b4059f8668:includes/viperlib.py c9f4be41ca1cc2b4:includes/viperio.py ee52c08239684346:includes/ast\parser.py f5522571bcce7bcb:includes/stdint.py diff --git a/Test/LLvmLiteTest/temp/1d40c4bdc94641c5.pyi b/Test/NewAstTest/temp/c3b259b4059f8668.pyi similarity index 98% rename from Test/LLvmLiteTest/temp/1d40c4bdc94641c5.pyi rename to Test/NewAstTest/temp/c3b259b4059f8668.pyi index 597cc07..67ff4ce 100644 --- a/Test/LLvmLiteTest/temp/1d40c4bdc94641c5.pyi +++ b/Test/NewAstTest/temp/c3b259b4059f8668.pyi @@ -6,7 +6,6 @@ Module: viperlib import t, c import viperio -import stdio from stdarg import arg, va_arg TEMP_BUF_SIZE: t.CDefine = 68 diff --git a/Test/NoVTableTest/output/22650858c377c847.deps.json b/Test/NoVTableTest/output/22650858c377c847.deps.json index 40dd81b..6f6a6c7 100644 --- a/Test/NoVTableTest/output/22650858c377c847.deps.json +++ b/Test/NoVTableTest/output/22650858c377c847.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "viperlib": "1d40c4bdc94641c5", "linkedlist": "2d39c6c7d3557b3e", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"testcheck": "14d33679f7fadf1f", "linkedlist": "2d39c6c7d3557b3e", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb"} \ No newline at end of file diff --git a/Test/NoVTableTest/temp/1d40c4bdc94641c5.pyi b/Test/NoVTableTest/temp/1d40c4bdc94641c5.pyi deleted file mode 100644 index 597cc07..0000000 --- a/Test/NoVTableTest/temp/1d40c4bdc94641c5.pyi +++ /dev/null @@ -1,24 +0,0 @@ -""" -Auto-generated Python stub file from viperlib.py -Module: viperlib -""" - - -import t, c -import viperio -import stdio -from stdarg import arg, va_arg - -TEMP_BUF_SIZE: t.CDefine = 68 - -def get_digit_count(num: t.CUnsignedInt, base: t.CInt) -> t.CStatic | t.CInt: pass - -def sprintf(buf: t.CChar | t.CPtr, rule: str, *args) -> t.CVoid | t.CExport: pass - -def vsprintf(buf: t.CChar | t.CPtr, rule: str, *args) -> t.CInt: pass - -def snprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, *args) -> t.CInt | t.CExport: pass - -def _check_special_float(fv: t.CDouble) -> t.CInt: pass - -def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.CPtr) -> t.CInt | t.CExport: pass diff --git a/Test/NoVTableTest/temp/_phase1_manifest.json b/Test/NoVTableTest/temp/_phase1_manifest.json index 3159e95..4da4ee3 100644 --- a/Test/NoVTableTest/temp/_phase1_manifest.json +++ b/Test/NoVTableTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\NoVTableTest\\App\\main.py": {"sha1": "22650858c377c847", "mtime": 1782800242.9985914, "size": 17052}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\linkedlist.py": {"sha1": "2d39c6c7d3557b3e", "mtime": 1782895405.2191627, "size": 16032}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.py": {"sha1": "71e0a3ffcb3ebfad", "mtime": 1781258888.113146, "size": 277}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784464295.903657, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784387475.6951904, "size": 10395}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784375629.8057406, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.py": {"sha1": "1d40c4bdc94641c5", "mtime": 1784470563.362105, "size": 56865}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\NoVTableTest\\App\\main.py": {"sha1": "22650858c377c847", "mtime": 1782800242.9985914, "size": 17052}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\linkedlist.py": {"sha1": "2d39c6c7d3557b3e", "mtime": 1782895405.2191627, "size": 16032}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.py": {"sha1": "71e0a3ffcb3ebfad", "mtime": 1781258888.113146, "size": 277}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784566611.8280091, "size": 10395}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.py": {"sha1": "c3b259b4059f8668", "mtime": 1784566611.8459883, "size": 56772}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/NoVTableTest/temp/_sha1_map.txt b/Test/NoVTableTest/temp/_sha1_map.txt index 14dbac5..26ecc7b 100644 --- a/Test/NoVTableTest/temp/_sha1_map.txt +++ b/Test/NoVTableTest/temp/_sha1_map.txt @@ -1,5 +1,4 @@ 14d33679f7fadf1f:includes/testcheck.py -1d40c4bdc94641c5:includes/viperlib.py 22650858c377c847:main.py 2d39c6c7d3557b3e:includes/linkedlist.py 6f62fe05c5ea1ceb:includes/stdio.py @@ -8,5 +7,6 @@ 90c53dd6db8d41cf:includes/stdlib.py 9474791561654346:includes/string.py bbdf3bbd4c3bc28c:includes/w32\win32console.py +c3b259b4059f8668:includes/viperlib.py c9f4be41ca1cc2b4:includes/viperio.py f5522571bcce7bcb:includes/stdint.py diff --git a/Test/NoVTableTest/temp/c3b259b4059f8668.pyi b/Test/NoVTableTest/temp/c3b259b4059f8668.pyi new file mode 100644 index 0000000..67ff4ce --- /dev/null +++ b/Test/NoVTableTest/temp/c3b259b4059f8668.pyi @@ -0,0 +1,23 @@ +""" +Auto-generated Python stub file from viperlib.py +Module: viperlib +""" + + +import t, c +import viperio +from stdarg import arg, va_arg + +TEMP_BUF_SIZE: t.CDefine = 68 + +def get_digit_count(num: t.CUnsignedInt, base: t.CInt) -> t.CStatic | t.CInt: pass + +def sprintf(buf: t.CChar | t.CPtr, rule: str, *args) -> t.CVoid | t.CExport: pass + +def vsprintf(buf: t.CChar | t.CPtr, rule: str, *args) -> t.CInt: pass + +def snprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, *args) -> t.CInt | t.CExport: pass + +def _check_special_float(fv: t.CDouble) -> t.CInt: pass + +def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.CPtr) -> t.CInt | t.CExport: pass diff --git a/Test/PointerTest/temp/_phase1_manifest.json b/Test/PointerTest/temp/_phase1_manifest.json index 938dfdd..22e9922 100644 --- a/Test/PointerTest/temp/_phase1_manifest.json +++ b/Test/PointerTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\PointerTest\\App\\main.py": {"sha1": "b436212dcff1be29", "mtime": 1782266285.034029, "size": 9274}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784387475.6951904, "size": 10395}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784375629.8057406, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32memory.py": {"sha1": "72e2d5ccb7cedcf1", "mtime": 1781200703.5389092, "size": 3142}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\PointerTest\\App\\main.py": {"sha1": "b436212dcff1be29", "mtime": 1782266285.034029, "size": 9274}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784566611.8280091, "size": 10395}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32memory.py": {"sha1": "72e2d5ccb7cedcf1", "mtime": 1781200703.5389092, "size": 3142}} \ No newline at end of file diff --git a/Test/ShortCircuitTest/temp/_phase1_manifest.json b/Test/ShortCircuitTest/temp/_phase1_manifest.json index 9f69a79..d1b5812 100644 --- a/Test/ShortCircuitTest/temp/_phase1_manifest.json +++ b/Test/ShortCircuitTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ShortCircuitTest\\App\\main.py": {"sha1": "a711c9c66fd7c6ca", "mtime": 1782355546.5909688, "size": 4497}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784464295.903657, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784387475.6951904, "size": 10395}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784375629.8057406, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ShortCircuitTest\\App\\main.py": {"sha1": "a711c9c66fd7c6ca", "mtime": 1782355546.5909688, "size": 4497}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784566611.8280091, "size": 10395}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/SimdTest/output/271ea3decb810db2.deps.json b/Test/SimdTest/output/271ea3decb810db2.deps.json index b73fff3..7cd943c 100644 --- a/Test/SimdTest/output/271ea3decb810db2.deps.json +++ b/Test/SimdTest/output/271ea3decb810db2.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "vipermath": "3f7c5e78d8652535", "memhub": "47775d5e50909338", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "main": "90f67f777f23b84b", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "vipersimd": "c24f25b14b4bbd0a", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "vipermath": "3f7c5e78d8652535", "stdio": "6f62fe05c5ea1ceb", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "main": "90f67f777f23b84b", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "vipersimd": "c24f25b14b4bbd0a", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb"} \ No newline at end of file diff --git a/Test/SimdTest/output/3f7c5e78d8652535.deps.json b/Test/SimdTest/output/3f7c5e78d8652535.deps.json index b73fff3..7cd943c 100644 --- a/Test/SimdTest/output/3f7c5e78d8652535.deps.json +++ b/Test/SimdTest/output/3f7c5e78d8652535.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "vipermath": "3f7c5e78d8652535", "memhub": "47775d5e50909338", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "main": "90f67f777f23b84b", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "vipersimd": "c24f25b14b4bbd0a", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "vipermath": "3f7c5e78d8652535", "stdio": "6f62fe05c5ea1ceb", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "main": "90f67f777f23b84b", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "vipersimd": "c24f25b14b4bbd0a", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb"} \ No newline at end of file diff --git a/Test/SimdTest/output/47775d5e50909338.deps.json b/Test/SimdTest/output/754640ce30cfebcc.deps.json similarity index 77% rename from Test/SimdTest/output/47775d5e50909338.deps.json rename to Test/SimdTest/output/754640ce30cfebcc.deps.json index b73fff3..7cd943c 100644 --- a/Test/SimdTest/output/47775d5e50909338.deps.json +++ b/Test/SimdTest/output/754640ce30cfebcc.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "vipermath": "3f7c5e78d8652535", "memhub": "47775d5e50909338", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "main": "90f67f777f23b84b", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "vipersimd": "c24f25b14b4bbd0a", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "vipermath": "3f7c5e78d8652535", "stdio": "6f62fe05c5ea1ceb", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "main": "90f67f777f23b84b", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "vipersimd": "c24f25b14b4bbd0a", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb"} \ No newline at end of file diff --git a/Test/SimdTest/output/90f67f777f23b84b.deps.json b/Test/SimdTest/output/90f67f777f23b84b.deps.json index cee1775..6b7d28e 100644 --- a/Test/SimdTest/output/90f67f777f23b84b.deps.json +++ b/Test/SimdTest/output/90f67f777f23b84b.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "vipermath": "3f7c5e78d8652535", "memhub": "47775d5e50909338", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "vipersimd": "c24f25b14b4bbd0a", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "vipermath": "3f7c5e78d8652535", "stdio": "6f62fe05c5ea1ceb", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "vipersimd": "c24f25b14b4bbd0a", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb"} \ No newline at end of file diff --git a/Test/SimdTest/output/_shared_sym_includes.pickle b/Test/SimdTest/output/_shared_sym_includes.pickle index 97339be66a808b06035401f2e64425613b112039..5df9655488ea758ce4703f9093de6bc378260429 100644 GIT binary patch delta 48481 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 delta 2269 zcmZuzZD<@t7`~6(>sFMeTt0ej(_ZY6Hfej=-P_&Uqt)aj)LKkI{OBdQyUp&-Y`8PM z*z=-@)SCEFsL@usxhV=ISXv|&YYBSzqaxY^CD>dMk=Bn|{2>TRfBMt8CI@mef0lWl z_kEt3=iQmvt$x1!i(2^8e_Omm~!|e{1Eg=|3wp(iGXZycV2Lw3dpZ1>f zuvsuCa4}lM=H%p*?dC7kTePXUlsq&B(!&U7RU0-vzqrIUw(hLzv}W9f#c< z+R8YDNYI3CmN8_4&S4~%10izJ>|GmnvWzl< zPBKUzY>Ffi6+4EYgB3fEcqjZe;_b4nm{&WBp^w#dx#)Ea5w_On@N^$>xTp3>2R0Gn z@Vs2*GisDk>6n0YRF{w<+KPqjgrX^utwtws$w0Y@T*b9h7hib3m@AYVH-EBD3pE#zmNJN~3_4V%cSAFJV!jNO`SN`~<$Tp0pA`i9wfJ?j z(6>WZW2TKPtm8hSD?wNwhC%k7Gt)mnOH$|xC)vH`kSEO1diFVl`u)QDD(#{Ns{H58h0?(9i-Jo zE5FYR89%x4q0knzk>iLcZmBvo7*j2pCjTr8on-2|@NLkaeCla8U-i-E!tfNDp2RLW lxFT$RAUo^v+{5$6EIGO&RDIc5qSu7Se8y~LrY2mw|3C0$eRlu= diff --git a/Test/SimdTest/output/c24f25b14b4bbd0a.deps.json b/Test/SimdTest/output/c24f25b14b4bbd0a.deps.json index b73fff3..7cd943c 100644 --- a/Test/SimdTest/output/c24f25b14b4bbd0a.deps.json +++ b/Test/SimdTest/output/c24f25b14b4bbd0a.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "vipermath": "3f7c5e78d8652535", "memhub": "47775d5e50909338", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "main": "90f67f777f23b84b", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "vipersimd": "c24f25b14b4bbd0a", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "vipermath": "3f7c5e78d8652535", "stdio": "6f62fe05c5ea1ceb", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "main": "90f67f777f23b84b", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "vipersimd": "c24f25b14b4bbd0a", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb"} \ No newline at end of file diff --git a/Test/SimdTest/output/c3a6aed1f1fb8b1e.deps.json b/Test/SimdTest/output/c3a6aed1f1fb8b1e.deps.json index b73fff3..7cd943c 100644 --- a/Test/SimdTest/output/c3a6aed1f1fb8b1e.deps.json +++ b/Test/SimdTest/output/c3a6aed1f1fb8b1e.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "vipermath": "3f7c5e78d8652535", "memhub": "47775d5e50909338", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "main": "90f67f777f23b84b", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "vipersimd": "c24f25b14b4bbd0a", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "vipermath": "3f7c5e78d8652535", "stdio": "6f62fe05c5ea1ceb", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "main": "90f67f777f23b84b", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "vipersimd": "c24f25b14b4bbd0a", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb"} \ No newline at end of file diff --git a/Test/SimdTest/output/c9f4be41ca1cc2b4.deps.json b/Test/SimdTest/output/c9f4be41ca1cc2b4.deps.json index b73fff3..7cd943c 100644 --- a/Test/SimdTest/output/c9f4be41ca1cc2b4.deps.json +++ b/Test/SimdTest/output/c9f4be41ca1cc2b4.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "vipermath": "3f7c5e78d8652535", "memhub": "47775d5e50909338", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "main": "90f67f777f23b84b", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "vipersimd": "c24f25b14b4bbd0a", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "vipermath": "3f7c5e78d8652535", "stdio": "6f62fe05c5ea1ceb", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "main": "90f67f777f23b84b", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "vipersimd": "c24f25b14b4bbd0a", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb"} \ No newline at end of file diff --git a/Test/SimdTest/temp/47775d5e50909338.pyi b/Test/SimdTest/temp/754640ce30cfebcc.pyi similarity index 100% rename from Test/SimdTest/temp/47775d5e50909338.pyi rename to Test/SimdTest/temp/754640ce30cfebcc.pyi diff --git a/Test/SimdTest/temp/_phase1_manifest.json b/Test/SimdTest/temp/_phase1_manifest.json index 4b3a511..ce9f3c9 100644 --- a/Test/SimdTest/temp/_phase1_manifest.json +++ b/Test/SimdTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\SimdTest\\App\\main.py": {"sha1": "90f67f777f23b84b", "mtime": 1784439472.858204, "size": 17408}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "47775d5e50909338", "mtime": 1784464283.860502, "size": 19750}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\numpy\\__init__.py": {"sha1": "c3a6aed1f1fb8b1e", "mtime": 1784446436.2910569, "size": 39111}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784464295.903657, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784387475.6951904, "size": 10395}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784375629.8057406, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\vipermath.py": {"sha1": "3f7c5e78d8652535", "mtime": 1781532528.2518907, "size": 15412}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\vipersimd.py": {"sha1": "c24f25b14b4bbd0a", "mtime": 1782891155.5031893, "size": 15522}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\SimdTest\\App\\main.py": {"sha1": "90f67f777f23b84b", "mtime": 1784566611.8616376, "size": 17408}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "754640ce30cfebcc", "mtime": 1784566611.8434613, "size": 20300}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\numpy\\__init__.py": {"sha1": "c3a6aed1f1fb8b1e", "mtime": 1784446436.2910569, "size": 39111}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784566611.8280091, "size": 10395}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\vipermath.py": {"sha1": "3f7c5e78d8652535", "mtime": 1781532528.2518907, "size": 15412}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\vipersimd.py": {"sha1": "c24f25b14b4bbd0a", "mtime": 1782891155.5031893, "size": 15522}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/SimdTest/temp/_sha1_map.txt b/Test/SimdTest/temp/_sha1_map.txt index ca03a7e..a12f983 100644 --- a/Test/SimdTest/temp/_sha1_map.txt +++ b/Test/SimdTest/temp/_sha1_map.txt @@ -1,8 +1,8 @@ 14d33679f7fadf1f:includes/testcheck.py 271ea3decb810db2:includes/atom.py 3f7c5e78d8652535:includes/vipermath.py -47775d5e50909338:includes/memhub.py 6f62fe05c5ea1ceb:includes/stdio.py +754640ce30cfebcc:includes/memhub.py 7e529fe7a078cfef:includes/w32\win32base.py 90c53dd6db8d41cf:includes/stdlib.py 90f67f777f23b84b:main.py diff --git a/Test/SprintfTest/output/f492cb40d913400b.deps.json b/Test/SprintfTest/output/f492cb40d913400b.deps.json index 86ea84a..f9bd8c9 100644 --- a/Test/SprintfTest/output/f492cb40d913400b.deps.json +++ b/Test/SprintfTest/output/f492cb40d913400b.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "viperlib": "1d40c4bdc94641c5", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"testcheck": "14d33679f7fadf1f", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb"} \ No newline at end of file diff --git a/Test/SprintfTest/temp/1d40c4bdc94641c5.pyi b/Test/SprintfTest/temp/1d40c4bdc94641c5.pyi deleted file mode 100644 index 597cc07..0000000 --- a/Test/SprintfTest/temp/1d40c4bdc94641c5.pyi +++ /dev/null @@ -1,24 +0,0 @@ -""" -Auto-generated Python stub file from viperlib.py -Module: viperlib -""" - - -import t, c -import viperio -import stdio -from stdarg import arg, va_arg - -TEMP_BUF_SIZE: t.CDefine = 68 - -def get_digit_count(num: t.CUnsignedInt, base: t.CInt) -> t.CStatic | t.CInt: pass - -def sprintf(buf: t.CChar | t.CPtr, rule: str, *args) -> t.CVoid | t.CExport: pass - -def vsprintf(buf: t.CChar | t.CPtr, rule: str, *args) -> t.CInt: pass - -def snprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, *args) -> t.CInt | t.CExport: pass - -def _check_special_float(fv: t.CDouble) -> t.CInt: pass - -def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.CPtr) -> t.CInt | t.CExport: pass diff --git a/Test/SprintfTest/temp/_phase1_manifest.json b/Test/SprintfTest/temp/_phase1_manifest.json index d2b8a0d..19d88f2 100644 --- a/Test/SprintfTest/temp/_phase1_manifest.json +++ b/Test/SprintfTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\SprintfTest\\App\\main.py": {"sha1": "f492cb40d913400b", "mtime": 1782821953.0346377, "size": 4235}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.py": {"sha1": "71e0a3ffcb3ebfad", "mtime": 1781258888.113146, "size": 277}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784464295.903657, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784375629.8057406, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.py": {"sha1": "1d40c4bdc94641c5", "mtime": 1784470563.362105, "size": 56865}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\SprintfTest\\App\\main.py": {"sha1": "f492cb40d913400b", "mtime": 1782821953.0346377, "size": 4235}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.py": {"sha1": "71e0a3ffcb3ebfad", "mtime": 1781258888.113146, "size": 277}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.py": {"sha1": "c3b259b4059f8668", "mtime": 1784566611.8459883, "size": 56772}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/SprintfTest/temp/_sha1_map.txt b/Test/SprintfTest/temp/_sha1_map.txt index dcd0af3..3921ea1 100644 --- a/Test/SprintfTest/temp/_sha1_map.txt +++ b/Test/SprintfTest/temp/_sha1_map.txt @@ -1,10 +1,10 @@ 14d33679f7fadf1f:includes/testcheck.py -1d40c4bdc94641c5:includes/viperlib.py 6f62fe05c5ea1ceb:includes/stdio.py 71e0a3ffcb3ebfad:includes/stdarg.py 7e529fe7a078cfef:includes/w32\win32base.py 90c53dd6db8d41cf:includes/stdlib.py bbdf3bbd4c3bc28c:includes/w32\win32console.py +c3b259b4059f8668:includes/viperlib.py c9f4be41ca1cc2b4:includes/viperio.py f492cb40d913400b:main.py f5522571bcce7bcb:includes/stdint.py diff --git a/Test/SprintfTest/temp/c3b259b4059f8668.pyi b/Test/SprintfTest/temp/c3b259b4059f8668.pyi new file mode 100644 index 0000000..67ff4ce --- /dev/null +++ b/Test/SprintfTest/temp/c3b259b4059f8668.pyi @@ -0,0 +1,23 @@ +""" +Auto-generated Python stub file from viperlib.py +Module: viperlib +""" + + +import t, c +import viperio +from stdarg import arg, va_arg + +TEMP_BUF_SIZE: t.CDefine = 68 + +def get_digit_count(num: t.CUnsignedInt, base: t.CInt) -> t.CStatic | t.CInt: pass + +def sprintf(buf: t.CChar | t.CPtr, rule: str, *args) -> t.CVoid | t.CExport: pass + +def vsprintf(buf: t.CChar | t.CPtr, rule: str, *args) -> t.CInt: pass + +def snprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, *args) -> t.CInt | t.CExport: pass + +def _check_special_float(fv: t.CDouble) -> t.CInt: pass + +def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.CPtr) -> t.CInt | t.CExport: pass diff --git a/Test/StringIterTest/output/924ed8cd4ea5c4c2.deps.json b/Test/StringIterTest/output/924ed8cd4ea5c4c2.deps.json index 53df2d6..6865f0b 100644 --- a/Test/StringIterTest/output/924ed8cd4ea5c4c2.deps.json +++ b/Test/StringIterTest/output/924ed8cd4ea5c4c2.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "memhub": "47775d5e50909338", "_list": "668790e6c9efdbae", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "_list": "668790e6c9efdbae", "stdio": "6f62fe05c5ea1ceb", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb"} \ No newline at end of file diff --git a/Test/StringIterTest/temp/47775d5e50909338.pyi b/Test/StringIterTest/temp/754640ce30cfebcc.pyi similarity index 100% rename from Test/StringIterTest/temp/47775d5e50909338.pyi rename to Test/StringIterTest/temp/754640ce30cfebcc.pyi diff --git a/Test/StringIterTest/temp/_phase1_manifest.json b/Test/StringIterTest/temp/_phase1_manifest.json index 735ee67..190c6b5 100644 --- a/Test/StringIterTest/temp/_phase1_manifest.json +++ b/Test/StringIterTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\StringIterTest\\App\\main.py": {"sha1": "924ed8cd4ea5c4c2", "mtime": 1782271507.3310895, "size": 6472}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\_list.py": {"sha1": "668790e6c9efdbae", "mtime": 1784451276.719043, "size": 3219}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "47775d5e50909338", "mtime": 1784464283.860502, "size": 19750}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784387475.6951904, "size": 10395}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784375629.8057406, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\StringIterTest\\App\\main.py": {"sha1": "924ed8cd4ea5c4c2", "mtime": 1782271507.3310895, "size": 6472}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\_list.py": {"sha1": "668790e6c9efdbae", "mtime": 1784566611.8525434, "size": 3219}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "754640ce30cfebcc", "mtime": 1784566611.8434613, "size": 20300}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784566611.8280091, "size": 10395}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/StringIterTest/temp/_sha1_map.txt b/Test/StringIterTest/temp/_sha1_map.txt index 4bd4965..d0b6211 100644 --- a/Test/StringIterTest/temp/_sha1_map.txt +++ b/Test/StringIterTest/temp/_sha1_map.txt @@ -1,8 +1,8 @@ 14d33679f7fadf1f:includes/testcheck.py 271ea3decb810db2:includes/atom.py -47775d5e50909338:includes/memhub.py 668790e6c9efdbae:includes/_list.py 6f62fe05c5ea1ceb:includes/stdio.py +754640ce30cfebcc:includes/memhub.py 7e529fe7a078cfef:includes/w32\win32base.py 924ed8cd4ea5c4c2:main.py 9474791561654346:includes/string.py diff --git a/Test/StringTest/temp/_phase1_manifest.json b/Test/StringTest/temp/_phase1_manifest.json index ce69661..27482f7 100644 --- a/Test/StringTest/temp/_phase1_manifest.json +++ b/Test/StringTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\StringTest\\App\\main.py": {"sha1": "39178dc5ba692b92", "mtime": 1782271507.3310895, "size": 3265}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784387475.6951904, "size": 10395}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784375629.8057406, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32memory.py": {"sha1": "72e2d5ccb7cedcf1", "mtime": 1781200703.5389092, "size": 3142}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\StringTest\\App\\main.py": {"sha1": "39178dc5ba692b92", "mtime": 1782271507.3310895, "size": 3265}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784566611.8280091, "size": 10395}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32memory.py": {"sha1": "72e2d5ccb7cedcf1", "mtime": 1781200703.5389092, "size": 3142}} \ No newline at end of file diff --git a/Test/StructTest/temp/_phase1_manifest.json b/Test/StructTest/temp/_phase1_manifest.json index 8ce559e..e53de71 100644 --- a/Test/StructTest/temp/_phase1_manifest.json +++ b/Test/StructTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\StructTest\\App\\main.py": {"sha1": "24e26a8de1173993", "mtime": 1782271507.3310895, "size": 2500}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784387475.6951904, "size": 10395}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784375629.8057406, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32memory.py": {"sha1": "72e2d5ccb7cedcf1", "mtime": 1781200703.5389092, "size": 3142}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\StructTest\\App\\main.py": {"sha1": "24e26a8de1173993", "mtime": 1782271507.3310895, "size": 2500}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784566611.8280091, "size": 10395}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32memory.py": {"sha1": "72e2d5ccb7cedcf1", "mtime": 1781200703.5389092, "size": 3142}} \ No newline at end of file diff --git a/Test/SysLibTest/output/13110effbb0bb06c.deps.json b/Test/SysLibTest/output/13110effbb0bb06c.deps.json index 62ee377..7dba99f 100644 --- a/Test/SysLibTest/output/13110effbb0bb06c.deps.json +++ b/Test/SysLibTest/output/13110effbb0bb06c.deps.json @@ -1 +1 @@ -{"w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "os.path": "13110effbb0bb06c", "path": "13110effbb0bb06c", "testcheck": "14d33679f7fadf1f", "viperlib": "1d40c4bdc94641c5", "atom": "271ea3decb810db2", "subprocess": "2da636c61863c815", "memhub": "47775d5e50909338", "os_backend": "59e00d50660b941e", "posix": "6503c97dde0c79c4", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "os.__init__": "76dd6c275aa72b3b", "__init__": "76dd6c275aa72b3b", "os": "76dd6c275aa72b3b", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "string": "9474791561654346", "syslibtest_impl": "a03139660029514f", "os._win32": "a68b70f233541a7f", "_win32": "a68b70f233541a7f", "shutil": "abbcbd92436cc16a", "sys": "b5a965302cded36b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "main": "c70684ccfe48a5a9", "viperio": "c9f4be41ca1cc2b4", "os._posix": "d152115b49e50218", "_posix": "d152115b49e50218", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "os.path": "13110effbb0bb06c", "path": "13110effbb0bb06c", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "subprocess": "2da636c61863c815", "os_backend": "59e00d50660b941e", "posix": "6503c97dde0c79c4", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "os.__init__": "76dd6c275aa72b3b", "__init__": "76dd6c275aa72b3b", "os": "76dd6c275aa72b3b", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "string": "9474791561654346", "syslibtest_impl": "a03139660029514f", "os._win32": "a68b70f233541a7f", "_win32": "a68b70f233541a7f", "shutil": "abbcbd92436cc16a", "sys": "b5a965302cded36b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "main": "c70684ccfe48a5a9", "viperio": "c9f4be41ca1cc2b4", "os._posix": "d152115b49e50218", "_posix": "d152115b49e50218", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/SysLibTest/output/2da636c61863c815.deps.json b/Test/SysLibTest/output/2da636c61863c815.deps.json deleted file mode 100644 index 62ee377..0000000 --- a/Test/SysLibTest/output/2da636c61863c815.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "os.path": "13110effbb0bb06c", "path": "13110effbb0bb06c", "testcheck": "14d33679f7fadf1f", "viperlib": "1d40c4bdc94641c5", "atom": "271ea3decb810db2", "subprocess": "2da636c61863c815", "memhub": "47775d5e50909338", "os_backend": "59e00d50660b941e", "posix": "6503c97dde0c79c4", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "os.__init__": "76dd6c275aa72b3b", "__init__": "76dd6c275aa72b3b", "os": "76dd6c275aa72b3b", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "string": "9474791561654346", "syslibtest_impl": "a03139660029514f", "os._win32": "a68b70f233541a7f", "_win32": "a68b70f233541a7f", "shutil": "abbcbd92436cc16a", "sys": "b5a965302cded36b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "main": "c70684ccfe48a5a9", "viperio": "c9f4be41ca1cc2b4", "os._posix": "d152115b49e50218", "_posix": "d152115b49e50218", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/SysLibTest/output/59e00d50660b941e.deps.json b/Test/SysLibTest/output/59e00d50660b941e.deps.json index 8b9565a..9eb5293 100644 --- a/Test/SysLibTest/output/59e00d50660b941e.deps.json +++ b/Test/SysLibTest/output/59e00d50660b941e.deps.json @@ -1 +1 @@ -{"w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "os.path": "13110effbb0bb06c", "path": "13110effbb0bb06c", "testcheck": "14d33679f7fadf1f", "viperlib": "1d40c4bdc94641c5", "atom": "271ea3decb810db2", "subprocess": "2da636c61863c815", "memhub": "47775d5e50909338", "posix": "6503c97dde0c79c4", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "os.__init__": "76dd6c275aa72b3b", "__init__": "76dd6c275aa72b3b", "os": "76dd6c275aa72b3b", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "string": "9474791561654346", "syslibtest_impl": "a03139660029514f", "os._win32": "a68b70f233541a7f", "_win32": "a68b70f233541a7f", "shutil": "abbcbd92436cc16a", "sys": "b5a965302cded36b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "main": "c70684ccfe48a5a9", "viperio": "c9f4be41ca1cc2b4", "os._posix": "d152115b49e50218", "_posix": "d152115b49e50218", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0"} \ No newline at end of file +{"w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "os.path": "13110effbb0bb06c", "path": "13110effbb0bb06c", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "subprocess": "2da636c61863c815", "posix": "6503c97dde0c79c4", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "os.__init__": "76dd6c275aa72b3b", "__init__": "76dd6c275aa72b3b", "os": "76dd6c275aa72b3b", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "string": "9474791561654346", "syslibtest_impl": "a03139660029514f", "os._win32": "a68b70f233541a7f", "_win32": "a68b70f233541a7f", "shutil": "abbcbd92436cc16a", "sys": "b5a965302cded36b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "main": "c70684ccfe48a5a9", "viperio": "c9f4be41ca1cc2b4", "os._posix": "d152115b49e50218", "_posix": "d152115b49e50218", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0"} \ No newline at end of file diff --git a/Test/SysLibTest/output/76dd6c275aa72b3b.deps.json b/Test/SysLibTest/output/76dd6c275aa72b3b.deps.json index 62ee377..7dba99f 100644 --- a/Test/SysLibTest/output/76dd6c275aa72b3b.deps.json +++ b/Test/SysLibTest/output/76dd6c275aa72b3b.deps.json @@ -1 +1 @@ -{"w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "os.path": "13110effbb0bb06c", "path": "13110effbb0bb06c", "testcheck": "14d33679f7fadf1f", "viperlib": "1d40c4bdc94641c5", "atom": "271ea3decb810db2", "subprocess": "2da636c61863c815", "memhub": "47775d5e50909338", "os_backend": "59e00d50660b941e", "posix": "6503c97dde0c79c4", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "os.__init__": "76dd6c275aa72b3b", "__init__": "76dd6c275aa72b3b", "os": "76dd6c275aa72b3b", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "string": "9474791561654346", "syslibtest_impl": "a03139660029514f", "os._win32": "a68b70f233541a7f", "_win32": "a68b70f233541a7f", "shutil": "abbcbd92436cc16a", "sys": "b5a965302cded36b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "main": "c70684ccfe48a5a9", "viperio": "c9f4be41ca1cc2b4", "os._posix": "d152115b49e50218", "_posix": "d152115b49e50218", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "os.path": "13110effbb0bb06c", "path": "13110effbb0bb06c", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "subprocess": "2da636c61863c815", "os_backend": "59e00d50660b941e", "posix": "6503c97dde0c79c4", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "os.__init__": "76dd6c275aa72b3b", "__init__": "76dd6c275aa72b3b", "os": "76dd6c275aa72b3b", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "string": "9474791561654346", "syslibtest_impl": "a03139660029514f", "os._win32": "a68b70f233541a7f", "_win32": "a68b70f233541a7f", "shutil": "abbcbd92436cc16a", "sys": "b5a965302cded36b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "main": "c70684ccfe48a5a9", "viperio": "c9f4be41ca1cc2b4", "os._posix": "d152115b49e50218", "_posix": "d152115b49e50218", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/SysLibTest/output/_shared_sym_includes.pickle b/Test/SysLibTest/output/_shared_sym_includes.pickle index f5f319ba131abafec34ce2b4641727665298016c..097560faf4946dfe4be87e210624da8f30199307 100644 GIT binary patch delta 63929 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 MeR=wK=jZMFKUr^Z@c;k- delta 17328 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 diff --git a/Test/SysLibTest/output/a03139660029514f.deps.json b/Test/SysLibTest/output/a03139660029514f.deps.json index b8fbb2e..ba1c041 100644 --- a/Test/SysLibTest/output/a03139660029514f.deps.json +++ b/Test/SysLibTest/output/a03139660029514f.deps.json @@ -1 +1 @@ -{"w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "os.path": "13110effbb0bb06c", "path": "13110effbb0bb06c", "testcheck": "14d33679f7fadf1f", "viperlib": "1d40c4bdc94641c5", "atom": "271ea3decb810db2", "subprocess": "2da636c61863c815", "memhub": "47775d5e50909338", "os_backend": "59e00d50660b941e", "posix": "6503c97dde0c79c4", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "os.__init__": "76dd6c275aa72b3b", "__init__": "76dd6c275aa72b3b", "os": "76dd6c275aa72b3b", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "string": "9474791561654346", "os._win32": "a68b70f233541a7f", "_win32": "a68b70f233541a7f", "shutil": "abbcbd92436cc16a", "sys": "b5a965302cded36b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "main": "c70684ccfe48a5a9", "viperio": "c9f4be41ca1cc2b4", "os._posix": "d152115b49e50218", "_posix": "d152115b49e50218", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0"} \ No newline at end of file +{"w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "os.path": "13110effbb0bb06c", "path": "13110effbb0bb06c", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "subprocess": "2da636c61863c815", "os_backend": "59e00d50660b941e", "posix": "6503c97dde0c79c4", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "os.__init__": "76dd6c275aa72b3b", "__init__": "76dd6c275aa72b3b", "os": "76dd6c275aa72b3b", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "string": "9474791561654346", "os._win32": "a68b70f233541a7f", "_win32": "a68b70f233541a7f", "shutil": "abbcbd92436cc16a", "sys": "b5a965302cded36b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "main": "c70684ccfe48a5a9", "viperio": "c9f4be41ca1cc2b4", "os._posix": "d152115b49e50218", "_posix": "d152115b49e50218", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0"} \ No newline at end of file diff --git a/Test/SysLibTest/output/a68b70f233541a7f.deps.json b/Test/SysLibTest/output/a68b70f233541a7f.deps.json index 62ee377..7dba99f 100644 --- a/Test/SysLibTest/output/a68b70f233541a7f.deps.json +++ b/Test/SysLibTest/output/a68b70f233541a7f.deps.json @@ -1 +1 @@ -{"w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "os.path": "13110effbb0bb06c", "path": "13110effbb0bb06c", "testcheck": "14d33679f7fadf1f", "viperlib": "1d40c4bdc94641c5", "atom": "271ea3decb810db2", "subprocess": "2da636c61863c815", "memhub": "47775d5e50909338", "os_backend": "59e00d50660b941e", "posix": "6503c97dde0c79c4", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "os.__init__": "76dd6c275aa72b3b", "__init__": "76dd6c275aa72b3b", "os": "76dd6c275aa72b3b", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "string": "9474791561654346", "syslibtest_impl": "a03139660029514f", "os._win32": "a68b70f233541a7f", "_win32": "a68b70f233541a7f", "shutil": "abbcbd92436cc16a", "sys": "b5a965302cded36b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "main": "c70684ccfe48a5a9", "viperio": "c9f4be41ca1cc2b4", "os._posix": "d152115b49e50218", "_posix": "d152115b49e50218", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "os.path": "13110effbb0bb06c", "path": "13110effbb0bb06c", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "subprocess": "2da636c61863c815", "os_backend": "59e00d50660b941e", "posix": "6503c97dde0c79c4", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "os.__init__": "76dd6c275aa72b3b", "__init__": "76dd6c275aa72b3b", "os": "76dd6c275aa72b3b", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "string": "9474791561654346", "syslibtest_impl": "a03139660029514f", "os._win32": "a68b70f233541a7f", "_win32": "a68b70f233541a7f", "shutil": "abbcbd92436cc16a", "sys": "b5a965302cded36b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "main": "c70684ccfe48a5a9", "viperio": "c9f4be41ca1cc2b4", "os._posix": "d152115b49e50218", "_posix": "d152115b49e50218", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/SysLibTest/output/abbcbd92436cc16a.deps.json b/Test/SysLibTest/output/abbcbd92436cc16a.deps.json index 62ee377..7dba99f 100644 --- a/Test/SysLibTest/output/abbcbd92436cc16a.deps.json +++ b/Test/SysLibTest/output/abbcbd92436cc16a.deps.json @@ -1 +1 @@ -{"w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "os.path": "13110effbb0bb06c", "path": "13110effbb0bb06c", "testcheck": "14d33679f7fadf1f", "viperlib": "1d40c4bdc94641c5", "atom": "271ea3decb810db2", "subprocess": "2da636c61863c815", "memhub": "47775d5e50909338", "os_backend": "59e00d50660b941e", "posix": "6503c97dde0c79c4", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "os.__init__": "76dd6c275aa72b3b", "__init__": "76dd6c275aa72b3b", "os": "76dd6c275aa72b3b", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "string": "9474791561654346", "syslibtest_impl": "a03139660029514f", "os._win32": "a68b70f233541a7f", "_win32": "a68b70f233541a7f", "shutil": "abbcbd92436cc16a", "sys": "b5a965302cded36b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "main": "c70684ccfe48a5a9", "viperio": "c9f4be41ca1cc2b4", "os._posix": "d152115b49e50218", "_posix": "d152115b49e50218", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "os.path": "13110effbb0bb06c", "path": "13110effbb0bb06c", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "subprocess": "2da636c61863c815", "os_backend": "59e00d50660b941e", "posix": "6503c97dde0c79c4", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "os.__init__": "76dd6c275aa72b3b", "__init__": "76dd6c275aa72b3b", "os": "76dd6c275aa72b3b", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "string": "9474791561654346", "syslibtest_impl": "a03139660029514f", "os._win32": "a68b70f233541a7f", "_win32": "a68b70f233541a7f", "shutil": "abbcbd92436cc16a", "sys": "b5a965302cded36b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "main": "c70684ccfe48a5a9", "viperio": "c9f4be41ca1cc2b4", "os._posix": "d152115b49e50218", "_posix": "d152115b49e50218", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/SysLibTest/output/c70684ccfe48a5a9.deps.json b/Test/SysLibTest/output/c70684ccfe48a5a9.deps.json index f871b59..5d38321 100644 --- a/Test/SysLibTest/output/c70684ccfe48a5a9.deps.json +++ b/Test/SysLibTest/output/c70684ccfe48a5a9.deps.json @@ -1 +1 @@ -{"w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "os.path": "13110effbb0bb06c", "path": "13110effbb0bb06c", "testcheck": "14d33679f7fadf1f", "viperlib": "1d40c4bdc94641c5", "atom": "271ea3decb810db2", "subprocess": "2da636c61863c815", "memhub": "47775d5e50909338", "os_backend": "59e00d50660b941e", "posix": "6503c97dde0c79c4", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "os.__init__": "76dd6c275aa72b3b", "__init__": "76dd6c275aa72b3b", "os": "76dd6c275aa72b3b", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "string": "9474791561654346", "syslibtest_impl": "a03139660029514f", "os._win32": "a68b70f233541a7f", "_win32": "a68b70f233541a7f", "shutil": "abbcbd92436cc16a", "sys": "b5a965302cded36b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "os._posix": "d152115b49e50218", "_posix": "d152115b49e50218", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0"} \ No newline at end of file +{"w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "os.path": "13110effbb0bb06c", "path": "13110effbb0bb06c", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "subprocess": "2da636c61863c815", "os_backend": "59e00d50660b941e", "posix": "6503c97dde0c79c4", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "os.__init__": "76dd6c275aa72b3b", "__init__": "76dd6c275aa72b3b", "os": "76dd6c275aa72b3b", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "string": "9474791561654346", "syslibtest_impl": "a03139660029514f", "os._win32": "a68b70f233541a7f", "_win32": "a68b70f233541a7f", "shutil": "abbcbd92436cc16a", "sys": "b5a965302cded36b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "viperio": "c9f4be41ca1cc2b4", "os._posix": "d152115b49e50218", "_posix": "d152115b49e50218", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0"} \ No newline at end of file diff --git a/Test/SysLibTest/output/d152115b49e50218.deps.json b/Test/SysLibTest/output/d152115b49e50218.deps.json index 62ee377..7dba99f 100644 --- a/Test/SysLibTest/output/d152115b49e50218.deps.json +++ b/Test/SysLibTest/output/d152115b49e50218.deps.json @@ -1 +1 @@ -{"w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "os.path": "13110effbb0bb06c", "path": "13110effbb0bb06c", "testcheck": "14d33679f7fadf1f", "viperlib": "1d40c4bdc94641c5", "atom": "271ea3decb810db2", "subprocess": "2da636c61863c815", "memhub": "47775d5e50909338", "os_backend": "59e00d50660b941e", "posix": "6503c97dde0c79c4", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "os.__init__": "76dd6c275aa72b3b", "__init__": "76dd6c275aa72b3b", "os": "76dd6c275aa72b3b", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "string": "9474791561654346", "syslibtest_impl": "a03139660029514f", "os._win32": "a68b70f233541a7f", "_win32": "a68b70f233541a7f", "shutil": "abbcbd92436cc16a", "sys": "b5a965302cded36b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "main": "c70684ccfe48a5a9", "viperio": "c9f4be41ca1cc2b4", "os._posix": "d152115b49e50218", "_posix": "d152115b49e50218", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "os.path": "13110effbb0bb06c", "path": "13110effbb0bb06c", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "subprocess": "2da636c61863c815", "os_backend": "59e00d50660b941e", "posix": "6503c97dde0c79c4", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "os.__init__": "76dd6c275aa72b3b", "__init__": "76dd6c275aa72b3b", "os": "76dd6c275aa72b3b", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "string": "9474791561654346", "syslibtest_impl": "a03139660029514f", "os._win32": "a68b70f233541a7f", "_win32": "a68b70f233541a7f", "shutil": "abbcbd92436cc16a", "sys": "b5a965302cded36b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "main": "c70684ccfe48a5a9", "viperio": "c9f4be41ca1cc2b4", "os._posix": "d152115b49e50218", "_posix": "d152115b49e50218", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/SysLibTest/temp/1d40c4bdc94641c5.pyi b/Test/SysLibTest/temp/1d40c4bdc94641c5.pyi deleted file mode 100644 index 597cc07..0000000 --- a/Test/SysLibTest/temp/1d40c4bdc94641c5.pyi +++ /dev/null @@ -1,24 +0,0 @@ -""" -Auto-generated Python stub file from viperlib.py -Module: viperlib -""" - - -import t, c -import viperio -import stdio -from stdarg import arg, va_arg - -TEMP_BUF_SIZE: t.CDefine = 68 - -def get_digit_count(num: t.CUnsignedInt, base: t.CInt) -> t.CStatic | t.CInt: pass - -def sprintf(buf: t.CChar | t.CPtr, rule: str, *args) -> t.CVoid | t.CExport: pass - -def vsprintf(buf: t.CChar | t.CPtr, rule: str, *args) -> t.CInt: pass - -def snprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, *args) -> t.CInt | t.CExport: pass - -def _check_special_float(fv: t.CDouble) -> t.CInt: pass - -def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.CPtr) -> t.CInt | t.CExport: pass diff --git a/Test/SysLibTest/temp/47775d5e50909338.pyi b/Test/SysLibTest/temp/754640ce30cfebcc.pyi similarity index 100% rename from Test/SysLibTest/temp/47775d5e50909338.pyi rename to Test/SysLibTest/temp/754640ce30cfebcc.pyi diff --git a/Test/SysLibTest/temp/_phase1_manifest.json b/Test/SysLibTest/temp/_phase1_manifest.json index d29e65d..78a6289 100644 --- a/Test/SysLibTest/temp/_phase1_manifest.json +++ b/Test/SysLibTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\SysLibTest\\App\\main.py": {"sha1": "c70684ccfe48a5a9", "mtime": 1782828223.3150382, "size": 918}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\SysLibTest\\App\\os_backend.py": {"sha1": "59e00d50660b941e", "mtime": 1782491896.4070306, "size": 1323}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\SysLibTest\\App\\syslibtest_impl.py": {"sha1": "a03139660029514f", "mtime": 1782828233.2147534, "size": 12395}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "47775d5e50909338", "mtime": 1784464283.860502, "size": 19750}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\os\\__init__.py": {"sha1": "76dd6c275aa72b3b", "mtime": 1782826646.8940291, "size": 4395}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\os\\_posix.py": {"sha1": "d152115b49e50218", "mtime": 1782826648.538678, "size": 5665}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\os\\_win32.py": {"sha1": "a68b70f233541a7f", "mtime": 1782826646.872196, "size": 7601}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\os\\path.py": {"sha1": "13110effbb0bb06c", "mtime": 1782826648.9189062, "size": 9499}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\platmacro.py": {"sha1": "93c1d18e35d188d6", "mtime": 1781237231.03366, "size": 1422}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\posix.py": {"sha1": "6503c97dde0c79c4", "mtime": 1783064077.6376991, "size": 10386}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\shutil.py": {"sha1": "abbcbd92436cc16a", "mtime": 1782826619.0231705, "size": 9131}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.py": {"sha1": "71e0a3ffcb3ebfad", "mtime": 1781258888.113146, "size": 277}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784464295.903657, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784387475.6951904, "size": 10395}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\subprocess.py": {"sha1": "2da636c61863c815", "mtime": 1783847277.4569364, "size": 7627}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\sys.py": {"sha1": "b5a965302cded36b", "mtime": 1783569641.07535, "size": 5509}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784375629.8057406, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.py": {"sha1": "1d40c4bdc94641c5", "mtime": 1784470563.362105, "size": 56865}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\fileio.py": {"sha1": "0035c95a18d4f8e8", "mtime": 1783747022.686592, "size": 14147}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32file.py": {"sha1": "f6b51804a0ba8ff0", "mtime": 1782531158.744144, "size": 8424}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32process.py": {"sha1": "067c78e9f121dce3", "mtime": 1781200703.5409546, "size": 4802}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32sync.py": {"sha1": "06f53cc594b4ac6c", "mtime": 1782297500.2581685, "size": 4726}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\SysLibTest\\App\\main.py": {"sha1": "c70684ccfe48a5a9", "mtime": 1782828223.3150382, "size": 918}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\SysLibTest\\App\\os_backend.py": {"sha1": "59e00d50660b941e", "mtime": 1782491896.4070306, "size": 1323}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\SysLibTest\\App\\syslibtest_impl.py": {"sha1": "a03139660029514f", "mtime": 1782828233.2147534, "size": 12395}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "754640ce30cfebcc", "mtime": 1784566611.8434613, "size": 20300}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\os\\__init__.py": {"sha1": "76dd6c275aa72b3b", "mtime": 1782826646.8940291, "size": 4395}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\os\\_posix.py": {"sha1": "d152115b49e50218", "mtime": 1782826648.538678, "size": 5665}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\os\\_win32.py": {"sha1": "a68b70f233541a7f", "mtime": 1782826646.872196, "size": 7601}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\os\\path.py": {"sha1": "13110effbb0bb06c", "mtime": 1782826648.9189062, "size": 9499}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\platmacro.py": {"sha1": "93c1d18e35d188d6", "mtime": 1781237231.03366, "size": 1422}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\posix.py": {"sha1": "6503c97dde0c79c4", "mtime": 1783064077.6376991, "size": 10386}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\shutil.py": {"sha1": "abbcbd92436cc16a", "mtime": 1782826619.0231705, "size": 9131}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.py": {"sha1": "71e0a3ffcb3ebfad", "mtime": 1781258888.113146, "size": 277}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784566611.8280091, "size": 10395}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\subprocess.py": {"sha1": "2da636c61863c815", "mtime": 1783847277.4569364, "size": 7627}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\sys.py": {"sha1": "b5a965302cded36b", "mtime": 1783569641.07535, "size": 5509}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.py": {"sha1": "c3b259b4059f8668", "mtime": 1784566611.8459883, "size": 56772}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\fileio.py": {"sha1": "0035c95a18d4f8e8", "mtime": 1783747022.686592, "size": 14147}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32file.py": {"sha1": "f6b51804a0ba8ff0", "mtime": 1782531158.744144, "size": 8424}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32process.py": {"sha1": "067c78e9f121dce3", "mtime": 1781200703.5409546, "size": 4802}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32sync.py": {"sha1": "06f53cc594b4ac6c", "mtime": 1782297500.2581685, "size": 4726}} \ No newline at end of file diff --git a/Test/SysLibTest/temp/_sha1_map.txt b/Test/SysLibTest/temp/_sha1_map.txt index be44c8a..13254d3 100644 --- a/Test/SysLibTest/temp/_sha1_map.txt +++ b/Test/SysLibTest/temp/_sha1_map.txt @@ -3,14 +3,13 @@ 06f53cc594b4ac6c:includes/w32\win32sync.py 13110effbb0bb06c:includes/os\path.py 14d33679f7fadf1f:includes/testcheck.py -1d40c4bdc94641c5:includes/viperlib.py 271ea3decb810db2:includes/atom.py 2da636c61863c815:includes/subprocess.py -47775d5e50909338:includes/memhub.py 59e00d50660b941e:os_backend.py 6503c97dde0c79c4:includes/posix.py 6f62fe05c5ea1ceb:includes/stdio.py 71e0a3ffcb3ebfad:includes/stdarg.py +754640ce30cfebcc:includes/memhub.py 76dd6c275aa72b3b:includes/os\__init__.py 7e529fe7a078cfef:includes/w32\win32base.py 90c53dd6db8d41cf:includes/stdlib.py @@ -21,6 +20,7 @@ a68b70f233541a7f:includes/os\_win32.py abbcbd92436cc16a:includes/shutil.py b5a965302cded36b:includes/sys.py bbdf3bbd4c3bc28c:includes/w32\win32console.py +c3b259b4059f8668:includes/viperlib.py c70684ccfe48a5a9:main.py c9f4be41ca1cc2b4:includes/viperio.py d152115b49e50218:includes/os\_posix.py diff --git a/Test/SysLibTest/temp/_shared_sym.json b/Test/SysLibTest/temp/_shared_sym.json index f929b2f30c9525a1e139480a62da51de68038a03..ee35224936bc83a3203823a8dbfae6b3b532c7f7 100644 GIT binary patch delta 57480 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 xFe@DUi?>sL~5!by+NXb5g8i64{<7n57nLM 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 diff --git a/Test/SysLibTest/temp/c3b259b4059f8668.pyi b/Test/SysLibTest/temp/c3b259b4059f8668.pyi new file mode 100644 index 0000000..67ff4ce --- /dev/null +++ b/Test/SysLibTest/temp/c3b259b4059f8668.pyi @@ -0,0 +1,23 @@ +""" +Auto-generated Python stub file from viperlib.py +Module: viperlib +""" + + +import t, c +import viperio +from stdarg import arg, va_arg + +TEMP_BUF_SIZE: t.CDefine = 68 + +def get_digit_count(num: t.CUnsignedInt, base: t.CInt) -> t.CStatic | t.CInt: pass + +def sprintf(buf: t.CChar | t.CPtr, rule: str, *args) -> t.CVoid | t.CExport: pass + +def vsprintf(buf: t.CChar | t.CPtr, rule: str, *args) -> t.CInt: pass + +def snprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, *args) -> t.CInt | t.CExport: pass + +def _check_special_float(fv: t.CDouble) -> t.CInt: pass + +def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.CPtr) -> t.CInt | t.CExport: pass diff --git a/Test/TestFBProject/output/_shared_sym_includes.pickle b/Test/TestFBProject/output/_shared_sym_includes.pickle index fca1c2d35e7c94bb3c620676e9b029e0f3ee4092..55e7de52e803c2b9f0b2c8179910bb05e3118f6b 100644 GIT binary patch delta 48288 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 E z4mUz<1tNcSn|Zp8@q-XAGwuEJiX74=-}Nq=sU+PNH+&cTRDySGSE6GFNLa^Yx16Jt zL>#gwxmL&7jp^^609n!+BMkInv3&hCtSVG0I5q~NMA5$YviE$WDKL!FaYP1wt! zQ7QBkkdrWLCMS`$0F{_?sDA{zRV`>8s3D+qa4v?imDMdc*k~g$eH6X_3T*{ZP9|Ya zgmXrn9g|?vMj$o=g)9Zq&gAV5jfUe}SYVQ`t(!JvDF8aLIc7#^+nW*bcZwom%s%Jv zv`~I9PQu!JVDVS*Cbu9(YAnA}M98NQogO$P22nbr@HmkSOmCFelUB&L*2M00BgdLr zLwn>LYl|9-4yS_HZSwSeoQka%DZWJ~aTGUvgLaRBiBpj^=t|h??av1;SmuT#i?bNS zzQ;q;zq>wt@`CSuic`)Z4fqKnPe8MIeIaoP_$U5!_!ttD@QJpHVP`2OM%h|I*#a<7^n0&><&ahX$OkaLBZC?k6!RCk;jfMWj!g{WIg(!i34T)(*Gd4v zY=jyhJag zf6)nGazXJubgfJwoguYHj&y|Yh4D(O$Byfw=UKowV*{k#45uFAC7G{naP3FtZc_n`c{8aZRilIa`!T+<}ZioK}ub%ut7DFR<?M#D-=8k}buI5#rd7>&g;1uV7@GQrGq&RnW3bdw5~qMj}{@Px(jyB5)p1@}2HS zrudvTYZYMIGr^sjQE4{=P%LMoSYinF+1H5&e1i2qGX{fLApw_!iDGh={^V((9=4Cr z*+YGaDHyDtVy+SAzZ;b#@S6h4gj&V&ZuzD>gg2VPf}=*gi{&tH2Nd zvq`~ngpniLs{#vLO`zgzqzHWmNhB#oz+Ssvf)&BYO<^L+N+42%c?CGZ?G6pjvM0_! z_#&VdrtlJMX-QkxND?Lh7boN(#e$G0rz!~Ca#+2mnZ0Wk`b~qzY<37i>H!k#;m~>Z z*)?B)K1#4qfE8eG@y)PD(4eAgQK14Zay?1>(#;Oo%Ci{}o>RI*3 zMDQ_TwINF-G#ZoM)vLAS`-BtNsk@(TvWW+$cb zCIHQ;+an{?@DNnX1X7s}W!9t_$TQN5wq;eqOu)wnUi6^A438AURH(86Ukz=t%2o#N zoIV`%PnvUbGwI%TvcWVNW97?lOz-ow;wIvR9zk0O?}T>RKnk+gzDpQH0Htz5A*qCh z6oqS{=yeMuX9X$xqIzQutpFClk~KW?o~%-ZjKc@|5WKv|}OgA5j0k-hwy;b?WB&~qA)=t=}O?06S#RKLvZFZhm?6fU(wxCa^UH3@Us^G64*bB>Os&J-ywLWLGjl zHHOCS>6z86x|42SM=a)|ZfvAGB7q9CR;G*@b!j@)>LT3-|3VDapXkE7%fPe9c~~1! z)A!bbhih?h54jfOaksa(8~^S~#Cj!v`5v-=R8?Dm8j6!225ktWQgZ=V5-SaOnWawn zX7RkHR71$q#fZcv!-0TwSv3r!tm&%gt=0l5E8HSM+Wtrfy11)+{Znv`uwIY8MO8

tosRixDbEKO34(Mh07>cO1bY&SQ(khi*$hg~md9j9vD?uJ<5n zGUT}kP|igLVj9(e1dWu#$1W{#3<>E#aFA>#Yg$1r^S8-;iP|`*#*lasnRB8@0i1a8 zmO-k z$eY@KNh(dER6te9l%n@|Wrs@eAP=cWl3F3M^xwQgA>*5L7~UjwV)P`sl3i}1t1r=& zibrC-?5OE++q)x)w$5aGk7{dgYZK4X9qV$574R+bQH`Bzs}32<``uAW4qledA=+Tg z7Wxze{j-^oxBP2wNwTo<_j#q_Wu$34EfmTlMUP;PBg;_QMVS;W6%nu61ZG7wli(X; z0qCB!!mM>$=@he0NJj_sfZAODmS7C<)W7kkGp|7# z#@l=2vA(wU&hDOAH+$4(2eBvl!XSjOW__mZ+J~77U53YOVqbLV3smv|0Odr+kUY|& zIlugEDNh{|9&YmgB?1Nu3N97^$>=HoMXz0hF;6TY1INAyLAob^#5G}LQcn;lb@5FJ zXQa4BE|ZF#E0uS3c8f`)oil_Gqdb;7N(?Fy!%AwGUw26_+PyD(RrQYz6*|X%Hf)#-DkjZVm{a zB+17Mvm=8OtI}X0`XY>MTEV$bBsrPB$egrx*k-*QC>_(*8Sm`w=yBbIY^eK4J++be z^g~g(;i7j+JUfye<z-?9=GB;8S$^_}Xf3&!*?D!C_QP*UV_ zjgsVG{n<=C-EMoN17#UwZf6odnMwEd_PVjIc(NP8wQYFAyy^~fMw1(*=&jd>u!;B~ z(T~j5mR%uK(P`@@P0-)bF6dR7kY9^DV6f%#G z{og&aex+ih3ikFzQr%rWk)G}(lgXW|?^67=SO^}0>?UUQikN53ibgf(TKR|zlcN{!9Un2@K0On>>ipIgXH8G zgaN7A`e~d)Ba8v0QBglF^h$Ff$bjF3CIoAMwpe!7b5yK>H>%pkz~-=p%2<`>B5oF? z9HQwI17q_-zg8Qv@n6tG@_aY|)kOd2_;Qdam5imJGl{>H1BTN0K73W^45cCxS(oZT zqDF23M@11{Cq#ZxG#+$(R5iV9W4auvqk_+b6N{F-$jQTuip^fy@mu8cW23f0JOy#k zqfwZM&KtgO(vMO@H4Rc2f4wFO2_Q(f;^ja`=|VOoVR!rlZ}1*5r$Yr45D`htyH^L| ziflw~BBr*81nbCF76wJ6C8@s@s?J78D))$@bPz}&s6l2@wyeG_SNn(@`nIYLMnE3L zR!V!vDB$M4ipY2?mP`3ra|H9fhnElD71u%@qPDPZU&fl~R*}2E+>mVkI3yF#N*3 zHm&qk1>_;NO@oQ0+r%Mrq@w*W1@DpVXTHn^f)EgDtU062n-@Ay;QuHCD$*yf=WyHcO2O zmXiTe3VCo)H1-K;Wjdb(a4El#_AM&bspY6kWXwpt76YQa!RYoSEo|QX0UWKwJ|`Yb zEy7~>7C6vLG@5q@QZ0&Q7OwDwng_v^4+!wOhbadf6SM>K3#YEYBM0V!15w{k!DJMr zcr5-X>dcHxl&`;O7f|S2iXb>m*nIPmCn3fjO+zjC`GWWb%Qm`w(z z=iyTz@`opd2OIkkMjQ~0bfvhjh@oS|!)_0+lhB)l$FrP5Yy)eFXa!~$ng=3C-B@er zegtjb;mU_Xh%;|r2UrrnDy45-`S>#qHlx!pU7FAVEH=Kh&NS3%6LNZ^bU}-|!5;`)Cs(FXj$}WzT?sT{o z+t3{pZf7RM0PTnXP(ei2j-c?c>@YqT92Cb`s;{%RGuGV|>FtWAIwfY7yMRipaaf!feVm(LaS9oZ1q%CIDqOvi{^(@RN8C9EJS!ojJcS8 zMKF*ZW7IWBid4N)w^`g6WmzxZsDq%KMv{6Ji2*1SLtTMsk2@=1l`bd=Wk z37b*ph@%K)@R-i;f-G-ub7G)v`WR@Ub_*Tb5V3&vATR}Cq(i8nq1DtWftTo9Q(^0> zBg+Ub3YD@tVm8pgts4)71LKD*S{gww=!&{r>sK_4{6o^EGwSvhoiA?D%(sm9(8 z2&V3W}y5ya=Ji(o1VZ$ z9^0`V!*NH+kx7;RMlUloqDOioFXZGw3~TxFM{w@QpZXQoSrN+zMroKS1*b??RHf(C z`!h!ml3ST8jsYXVo?)E@S4dDq3@R3(L@Y0B4xG1u!sLsjU_(F&oL%mp-VZl{O;ypC zW&!0QmdMCZdXVQ{3D{KRE_x-clLD54cZbP=V)Nw-9cLgh>wt_~K}tss3uMf5HKmb3 zazSPuXcq_(bp_6E`9$anT-K3l0ZZ1b3`QxY8d#X*5cT&c3XC@*e0L|{YkJT*v1C}| zW%&^UR)5WLK>2l_J_LZ zl6(`s;!>^xKn{1PTuvcNiKy5|TC1nsFK0gnR^eMoL>2tv=<7+848V^jNE!l7OW7<4 z0V4)QR`$Y@0}W@yKGOgDp;ZpsYlSpao{`#2Di3 zOY(!y(ltO-oAX<;_*5Ke(jb4|CF4Syg8s$G`g!^NSK;b&isLxF`A8Ith1kc#m=8a;Z zXOB31n@pkC5n&p3e9I-S!441fAtS`D69R?56ZU$xhL4IzMicJtFVhz)qob_8QEmR49SCTRNx2#)V*93YsKOR<}q5&iA5G#NJBaq#cv|NvWr2cS_ya zK#{)J3=O+BbKh8qi=)rg=o%{eMOn#M(6$V#UQ z!rvttroSC>S3-L;v`@PPVGnFitO1a!0ziM)0#J1!fLHT zoA!F6mXA(*;sb$pqb!=;lw>iRCvt*aVd-Ab3-89v!L7#Jcb{p_tU8MBhlbhMP6!ri zvwTnvYF(M1xiH&it!Y++0y8j_+(N7g)%=B)jZ48&PMDgB{9wOC#8@8Z50Xd0SxnZ# zV-h=NvYqJd{5uufGwh^UOpkaL~{kL3v15LH0avE$WT=pKe1)giSgJHlebT1px> z5&Xi#shTCIfHY5-8>*Tc71W}Kb{|hrcAwk@gtw&s zis&j^txA^*ls2uUgj6?CH$-#84&jZHLdcO6nrT@>7ZBxJ5mm8%ODh}uxt_-`Oj-1X zqcU38E4(Ag97M_rAwvUMEe6LGda6t3l-%~;tSSn>370vUZ8%2iAdjlCw{J_ z(nndb50=;y-z*?Fl6M#`T=Y0F^+ZQ@ly?4B9D|@eg!|ww6P-<=K@)Eg%YA+zoq*~7 z2%WvwTHeA>b#jI7LtQwAK4B+@7YVFD7J;qkP?KJu@>I_^;#Z>_P)VfNKMxUiArw&a z7JoJ_bV46-Ybw@du5{C2@aWf4Y)wOhhYiM7d!&Rnm#ns>9?fa$Y_5=3EisVI({&B9 zOCJ#yC)QA5J7GQtYdxPKsDnb`kx&Q=Dc!P5pJ)|9RM;Z8HL`T!4RHhMJD-do!W-qb z6|hd3NIN}&;7;ee_z++XU#EWXt;{NXEi)_PSOsiJzLxoJb|`Qg7<+WHAA(dZbdp9Y z-3Ru-wWXr8(Kry)_+Akj+eHA-MB|aD#k0{~iSVS>+E@sV$LV5-H_yS^uozBm$Wd(9qe=ZD(%@}-~;U)kC_ z>xHkYu4JSu8Bg}4T(_eeelaTG1s#H%BBq=N8+xe*d(rzBQa;;}NAM@K6exhgW7R^} zeK9q4APwkDVUgR}1pz30HkdykxS(Ff?IoVn?QK&B(Q5!(`}Cpj9}|3fZ^{3NV<08IBE~bLfeY z9gds}T?KXTPjm1!tkjcThtHlNx5{tBC_s@Py7*6|J*~D>p^UCMb=DQsaQqn;SN!B~ zmz}=tRCW?B6rk{5m^2CVP(Gn1>F7j?j@Pd^HrPRtTv~%Y@9C~8+EM8vF|q_(>%r*C zJnfBTuHuq;$!BxR_~KxwiTa`$R!WNH(TL;)sxDCrbm(M=e|PYL_; zo}5Pxt)Sy)hho1Rb|qeuXZZWNox_c6ZtI0A4$l|ez9QZ;`xT<7 zfun2ZI`h8QNCex`PuDP!l-4*8m;}*K<>z^e=aHgJE~km}&?|8%uH86Ff`{4`)9NyI zp)Lm*dAz#_*$6E)*TOKR@HI%}nBt7;ibV|(OYOu#IFer>i-2ny?v9d$aY-h*ghO%G z!D#@;u^1Ppt{*LbLMk2{3AQLFCZ+}UO}G=-g@x2J)oDN%4_AU)52;iWA+&{6;JO+n z-F4S8Fn|PJDYmMq8NdxKU;DrirjTGzqEnMFnF`mSaM}9oGhBFv@Lu#ruzC{RDFwD{ z44QRI>7$b6Af>YzOinfO0wBd2{?&?LuGY{ihvIASj8HJb)&1}X+@7Ktn?Bu3WBz=fDDyi&*FIm~3S!a(dNq6H93BW&WIs@)T^+WUG&lI* zh4^sQXh4coD^I^9D&j@aB!PvI9)y0W2ZS=jlfCVTX+u zgZ)n~8g-sgICEF5T(x{1n>WvjRdY5AX_R|Hi76OfhqmB`21Z8Q&>?53#3q|ycO-P$ z6wV{0OkkagUQFM=A#v5)wkjGFVi-APN)y12UFMJnI{VkIS^>ITwSwFq@)`P~LWw#D zhQuezrhyv^{u{!$_aI{eCGb#+GmBz)`0sEokIXMz8eWx@qqsm{ZB`CQl!2I?NUTn7 z{WDK=wLCjNaSr4hW+t!{+ z;nu!ntS#Q{O3?eguzI(UA`U|_xdp_tu;CV16T;2~sEiWbjKRV`j{1yZ*A6)}m@ku+ zQ%rc0>Gx~d2y_TYp+hYg9~mzl#5KEOE1<{)c)CNd*i}HBiY^-x7XeIw^d0>JH+J>6 zq~Qjxm7o3WXS}6M@k=re`zi#X1CDSBel?0Cf3M97e4yFhzzZ2i*r#lYhGUKIgGPuX z*cBnhM0Hlge}`fU2{VW$g~&9Q&0v zC5UsFkyxZ#=|8aCvAV{Ly&5=-0m#42<-sSrzdUrgF-1%v5FU8I8(rKJO-2GU-=eoz ztN-49aoNZPV3e6qJdV(R)Kr?D7{y?5UrJsLMx*+@S@fcJ>+0-M$%%Tv$)id&s^EaH z5$%qhknAXAyXY?-uKEI}{*GPdqi>K1LZ#VEw0TSFB#W!0O3~tdI<=j$-3a-AF_kgZ=2>LKa5pl z+#<(^?QJ@WjJ%t(@uZ^teYQQ`gsz9WwO^96iW~l(?474^^)-dAgXNUX_42%N`CsCx zh3jQ{H>@aZU=6pxoWwNcdpAh=H>Pn7lA9TY2iGL`;o*Ak)p-!sd zpWvN(Osr~=hIN9>Hf(11FMU|P_%Xto6ko5z*y7jZRMFg28y0xX(u%x!l~{3p#iBUE zyhw#W$pIu;IKN>C;HEJ959cyE15lfe5!&JA^bNg`5fxoJZ;{LmJ6kkOV6}Cl5SK+= zDed6ftK&|&5r|sP7Gi4x_7S>T^DevmhRAN!cMC&^csxnECGyk!3wyNEfE!ttvBFtF zbph4tw-uDPGL-=!9Kw&M`4^?6BLhqFWg$cL%Lg}usN{7BWCL0-#Cre{KdJ!EmDd&U z9<=*HURFR`p37yyKJIzkr5_bH+5-!!pWojM9KQ^KyKQ~;MK`ks+5zqdc>HltR}!0ZmX;#^uov<<9NrFDi!jZHsz&sVg$tF_K4EK{46zbK;sD<6!*4 zyr=kIV3#PxwFsAnhy%GP)fh|S4kTPO^D8`CnHg$|&Hv3p`$v5KZ{Tmx+>aqZR9OU; z5(4l&YWeJNp(*Do(kkZv1_#F<36(+X0l0KiHLiQA5os2H_M>LS|(H za|T;!0K$L(Z)&8w`*3aL#!NPk8%Ld?;ryn?`M5xl$^3iihUhA zkaRx*sw#g zzDOJ6==%1G04}m!Vy7?1r`QxCouI-u#iiTYe+-R*>EfWq4$LOSWr_|sw(Ln+B$RCa zLXceRGNCIx@|E(sF1K^D5&nd(FRwd9MHLFLXc48hX3|VgJ7RWR@Q(%a<4@vgReIwJL#1PfrmkM6boMt75Sm%G7tMh7CZ97UzK&2{K}wT4v8*s>knX8axhRY4 zc=aBaw%TODR4IFW9R^Mw)%ttsH&QvWH4e2;($yAbaI+;gc5{; zxG|nGi@`ckR;EhRsJt49k`ZS!8L|_DZpj0FwcU>qAX5i=U?joJ#4kvgpx#uTBMfBo zhx@a|X6y7fmypPYhctp*$u)wIQOzVR*~`L$Jf(lJn~)v%qr-@E!b6x8snC6Wls+7C zsgs2R9R;?a4lENcWwnsR1_apD6(W?LaO^0IeGb;k`z4mtj9b7dvMuSD(i(VXY*o;L zP=$xheOm@7BSV)!__Z8!h|9oTD>AZ0lBoKG^E?QJ<4%xZg_KbGOS~6iKStcHy&p}? zb)Y?6@(iWl*?La*l)>Lc!S%tnXYl-BMX4H1j6uRgHbER{IWR>-Fb)P`v#Q}{+ zDULlq8<=)%`NF-ta53RTF*8__$>_TkDMHMIUM%Aq)`Fp+6f;{y%(M+m z4mG5;;|LNFWTg@$Zw&>PC0(RO8ArTIh&@2ZZ&0%8{_R?UT5rZko;fzQ;||76xH65A z=(USe3Z70P#PiIF^=v72#+IbhJDpBYy0edAC=KIo-BdOUhb8m*1k|Qu19bIg#TF}W zcoGXII5nsQCiR95Z#h{s7=vVx^06=sLXjf7d3d9Od>M5x-{`}Z=fuxonW;}J#MTbq zz%@s~#yb0sSqX!@F4%RrtWp@!N@JQRL|4Y4@K!9CX|Bo5Kn7als-1(s7Cbt#ci;r$l0MYIw$ubULE*BL;-B+IK<>?De?f2 z6TSr=d2sjpXjdbARU{@k3n|%!k72WEC_Vr=_OjkAFsVzLcLmmOx-3T9)Q#Nru+~_l zLNRJ_obx{%5w(KOmEhQ>vf(02fn`0VJzIjvcs5DSG!7e)_+J?0rJ4k=t2?L))u#Ox z02jartJGTku6?j)ihNeFKKBI^2nBvq?F`Yo!ks)o)uBXm48s^6`-dlIEmX<2uD(7u zffA8j@$Rl(aj@RE-ULOGr}b$Bu+rZ}@45_2Tx3YY2HJ53pB9c}_rlA_61FZAiQ<@it)q74?Vw!Ppem%~`PUSn48azYG_Gz$ zr6%zY>J4$bo8b^mzU1p)&x|MvoD+YqsWV6-#?<7bGx#Dta+-$(th}`$edV*;NE_jr zXfgwwTKPrX3mKQGyd_@pmmkvf`lwN*A#aYx_9QMA02@B&RV>}SnO2lVt}0J_KTZNR?ZE*w`l~X04AX# zKvn{x`d|`dXYR8=Kr75W23wdABg^0xpUW+b;T9YsZ(1}H;Si%;Ono+^Y%8iZk~Ywk4`vv;dz4oLyTRQIj&UK_4LIR48=rWB5{Tgrks0xRz=!paT$kE8V#Gu# zG94>(mIPE>e;3##kPA|U&}A@)%&8=FJ=O|h*Uk8nQ(O$ovp_?geN_!zMsF5G#u(x| z1>6?ef{9o3UE)(RaUV=8KF%!qZ$>rtgZjjQ8A!NX zKt(sR%H1N8+NrtcFR%UY~{YiW1AG3wj8^^&L>&Q=cpfX`}C_My^D|Fcnv%W?L(^3bV)!bKC->Ckq zF1=`_oqGKzq!RV!7jRk*ag`WSt=#Zv$+v`CA==whkz~BPJK`pjR0h4tyFL$aUoz4j zYolUT-fgIUz6Q<)7crzy$`6RrTF7eFQcp;<3WfRFfHDr{E#}7_`Tnd2l-m_|+j~$} zIOX;v+(;+STe8d8rmfS&7T82AZNq1aE;O@1aWr}64L8?;v)`&NARvx_qbG53 z=>@VM+6Lk_pgRe;YB-f}fIj}7cn?gu4BVWpGr6d{qPI|+ni;;B3W5Rghp-luI{rW3k8GCf`tjF%SbMz};;Xi*ddvt8o;#vRw*YMwa TelY9luiZI1_7^{x_2&N%2KT&9 delta 2076 zcmZvdTWC~Q6o#FNS=~a(%~3N-I+>Uf6XRsgZO$26S|ib@)PfaMEDg@NsUezJH8LeF zm?m0KS~WA-$y}0|1RtanN{2ck;zOzQMQJV)d>HeRCm~|Q3o5O+$IMgKemQ6H?f+kU zuf^Kuyq;VC`2XtPUoCgE3`|VcW~z$+alQ{f&3MVHYlU#%A7PK9B{MNO<1LW6XRZB< zVfJv?@f%r;DT_bKcJ?}UOcWNMf91UDUX0JrbU3p!9YrtK7S>k$ROI=(5LteqW%FEHIqVI8KSE8wDG z3RUGxo9v_CF-N(3DW}sEnmFo(1>&N0Lr{k|X&V9`$I&$e>*x)x1G02FfB%gRvzJLdq!Xj*4`cA zo@91}ouphOxf}(ni++1?7Tk;wV09=)MMJ5f(@Jw?McBJ zdYL`2<3@^ilb>^`Kh67^bf$S3eob>n=T@4H&f7GvPR|&x&b?#2?7xhG57%;UjQ33` z8RuSM?>M-#_BfpLl?kToH)P#3f^t9>42AwT36+@EPC>n}RO{}uGWGiS%hNuTadH&`KX{4VFknWYbAc&%*sJ3Nkwi(d!$4g!(-xO7_G@5RTvZSk) zqN{n^kF(77*F0H8o1c(eN&DYDtdp?2(>&c_Md-!_;{7m>+Ryf}M{gfJut4rO+1vA! Nv^vlB(IZdE<##KaWGw&y diff --git a/Test/TestFBProject/temp/_phase1_manifest.json b/Test/TestFBProject/temp/_phase1_manifest.json index b20d9f9..c23c0b4 100644 --- a/Test/TestFBProject/temp/_phase1_manifest.json +++ b/Test/TestFBProject/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestFBProject\\App\\main.py": {"sha1": "4fb8940ff5ab1022", "mtime": 1782110087.2169445, "size": 5059}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784375629.8057406, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestFBProject\\App\\main.py": {"sha1": "4fb8940ff5ab1022", "mtime": 1782110087.2169445, "size": 5059}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/TestProject/output/3cd87018ba1e76bc.deps.json b/Test/TestProject/output/3cd87018ba1e76bc.deps.json index ff6e0cb..9bc7128 100644 --- a/Test/TestProject/output/3cd87018ba1e76bc.deps.json +++ b/Test/TestProject/output/3cd87018ba1e76bc.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "vipermath": "3f7c5e78d8652535", "memhub": "47775d5e50909338", "main": "49cae05490a513cb", "stdio": "6f62fe05c5ea1ceb", "zc.test": "75583f20a922ab2e", "test": "75583f20a922ab2e", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "config": "cfc83b830141b00e", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "zc.class_test": "e5fb16127bce8f68", "class_test": "e5fb16127bce8f68", "stdint": "f5522571bcce7bcb", "zc.logic_test": "faec3233d98371da", "logic_test": "faec3233d98371da"} \ No newline at end of file +{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "vipermath": "3f7c5e78d8652535", "main": "49cae05490a513cb", "stdio": "6f62fe05c5ea1ceb", "memhub": "754640ce30cfebcc", "zc.test": "75583f20a922ab2e", "test": "75583f20a922ab2e", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "config": "cfc83b830141b00e", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "zc.class_test": "e5fb16127bce8f68", "class_test": "e5fb16127bce8f68", "stdint": "f5522571bcce7bcb", "zc.logic_test": "faec3233d98371da", "logic_test": "faec3233d98371da"} \ No newline at end of file diff --git a/Test/TestProject/output/49cae05490a513cb.deps.json b/Test/TestProject/output/49cae05490a513cb.deps.json index 1ee39f2..39d437c 100644 --- a/Test/TestProject/output/49cae05490a513cb.deps.json +++ b/Test/TestProject/output/49cae05490a513cb.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "test_numpy": "3cd87018ba1e76bc", "vipermath": "3f7c5e78d8652535", "memhub": "47775d5e50909338", "stdio": "6f62fe05c5ea1ceb", "zc.test": "75583f20a922ab2e", "test": "75583f20a922ab2e", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "config": "cfc83b830141b00e", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "zc.class_test": "e5fb16127bce8f68", "class_test": "e5fb16127bce8f68", "stdint": "f5522571bcce7bcb", "zc.logic_test": "faec3233d98371da", "logic_test": "faec3233d98371da"} \ No newline at end of file +{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "test_numpy": "3cd87018ba1e76bc", "vipermath": "3f7c5e78d8652535", "stdio": "6f62fe05c5ea1ceb", "memhub": "754640ce30cfebcc", "zc.test": "75583f20a922ab2e", "test": "75583f20a922ab2e", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "config": "cfc83b830141b00e", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "zc.class_test": "e5fb16127bce8f68", "class_test": "e5fb16127bce8f68", "stdint": "f5522571bcce7bcb", "zc.logic_test": "faec3233d98371da", "logic_test": "faec3233d98371da"} \ No newline at end of file diff --git a/Test/TestProject/output/75583f20a922ab2e.deps.json b/Test/TestProject/output/75583f20a922ab2e.deps.json index 6230ea1..32d3a6d 100644 --- a/Test/TestProject/output/75583f20a922ab2e.deps.json +++ b/Test/TestProject/output/75583f20a922ab2e.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "test_numpy": "3cd87018ba1e76bc", "vipermath": "3f7c5e78d8652535", "memhub": "47775d5e50909338", "main": "49cae05490a513cb", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "config": "cfc83b830141b00e", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "zc.class_test": "e5fb16127bce8f68", "class_test": "e5fb16127bce8f68", "stdint": "f5522571bcce7bcb", "zc.logic_test": "faec3233d98371da", "logic_test": "faec3233d98371da"} \ No newline at end of file +{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "test_numpy": "3cd87018ba1e76bc", "vipermath": "3f7c5e78d8652535", "main": "49cae05490a513cb", "stdio": "6f62fe05c5ea1ceb", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "config": "cfc83b830141b00e", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "zc.class_test": "e5fb16127bce8f68", "class_test": "e5fb16127bce8f68", "stdint": "f5522571bcce7bcb", "zc.logic_test": "faec3233d98371da", "logic_test": "faec3233d98371da"} \ No newline at end of file diff --git a/Test/TestProject/output/8e0d8fdba991b3b4.deps.json b/Test/TestProject/output/8e0d8fdba991b3b4.deps.json index 1aecbcb..69239f7 100644 --- a/Test/TestProject/output/8e0d8fdba991b3b4.deps.json +++ b/Test/TestProject/output/8e0d8fdba991b3b4.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "test_numpy": "3cd87018ba1e76bc", "vipermath": "3f7c5e78d8652535", "memhub": "47775d5e50909338", "main": "49cae05490a513cb", "stdio": "6f62fe05c5ea1ceb", "zc.test": "75583f20a922ab2e", "test": "75583f20a922ab2e", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "zc.class_test": "e5fb16127bce8f68", "class_test": "e5fb16127bce8f68", "stdint": "f5522571bcce7bcb", "zc.logic_test": "faec3233d98371da", "logic_test": "faec3233d98371da"} \ No newline at end of file +{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "test_numpy": "3cd87018ba1e76bc", "vipermath": "3f7c5e78d8652535", "main": "49cae05490a513cb", "stdio": "6f62fe05c5ea1ceb", "memhub": "754640ce30cfebcc", "zc.test": "75583f20a922ab2e", "test": "75583f20a922ab2e", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "zc.class_test": "e5fb16127bce8f68", "class_test": "e5fb16127bce8f68", "stdint": "f5522571bcce7bcb", "zc.logic_test": "faec3233d98371da", "logic_test": "faec3233d98371da"} \ No newline at end of file diff --git a/Test/TestProject/output/cfc83b830141b00e.deps.json b/Test/TestProject/output/cfc83b830141b00e.deps.json index c45eb92..8d55852 100644 --- a/Test/TestProject/output/cfc83b830141b00e.deps.json +++ b/Test/TestProject/output/cfc83b830141b00e.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "test_numpy": "3cd87018ba1e76bc", "vipermath": "3f7c5e78d8652535", "memhub": "47775d5e50909338", "main": "49cae05490a513cb", "stdio": "6f62fe05c5ea1ceb", "zc.test": "75583f20a922ab2e", "test": "75583f20a922ab2e", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "config": "8e0d8fdba991b3b4", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "zc.class_test": "e5fb16127bce8f68", "class_test": "e5fb16127bce8f68", "stdint": "f5522571bcce7bcb", "zc.logic_test": "faec3233d98371da", "logic_test": "faec3233d98371da"} \ No newline at end of file +{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "test_numpy": "3cd87018ba1e76bc", "vipermath": "3f7c5e78d8652535", "main": "49cae05490a513cb", "stdio": "6f62fe05c5ea1ceb", "memhub": "754640ce30cfebcc", "zc.test": "75583f20a922ab2e", "test": "75583f20a922ab2e", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "config": "8e0d8fdba991b3b4", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "zc.class_test": "e5fb16127bce8f68", "class_test": "e5fb16127bce8f68", "stdint": "f5522571bcce7bcb", "zc.logic_test": "faec3233d98371da", "logic_test": "faec3233d98371da"} \ No newline at end of file diff --git a/Test/TestProject/output/e5fb16127bce8f68.deps.json b/Test/TestProject/output/e5fb16127bce8f68.deps.json index 354292b..9c351fd 100644 --- a/Test/TestProject/output/e5fb16127bce8f68.deps.json +++ b/Test/TestProject/output/e5fb16127bce8f68.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "test_numpy": "3cd87018ba1e76bc", "vipermath": "3f7c5e78d8652535", "memhub": "47775d5e50909338", "main": "49cae05490a513cb", "stdio": "6f62fe05c5ea1ceb", "zc.test": "75583f20a922ab2e", "test": "75583f20a922ab2e", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "config": "cfc83b830141b00e", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "stdint": "f5522571bcce7bcb", "zc.logic_test": "faec3233d98371da", "logic_test": "faec3233d98371da"} \ No newline at end of file +{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "test_numpy": "3cd87018ba1e76bc", "vipermath": "3f7c5e78d8652535", "main": "49cae05490a513cb", "stdio": "6f62fe05c5ea1ceb", "memhub": "754640ce30cfebcc", "zc.test": "75583f20a922ab2e", "test": "75583f20a922ab2e", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "config": "cfc83b830141b00e", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "stdint": "f5522571bcce7bcb", "zc.logic_test": "faec3233d98371da", "logic_test": "faec3233d98371da"} \ No newline at end of file diff --git a/Test/TestProject/output/faec3233d98371da.deps.json b/Test/TestProject/output/faec3233d98371da.deps.json index 909f537..74c4c53 100644 --- a/Test/TestProject/output/faec3233d98371da.deps.json +++ b/Test/TestProject/output/faec3233d98371da.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "test_numpy": "3cd87018ba1e76bc", "vipermath": "3f7c5e78d8652535", "memhub": "47775d5e50909338", "main": "49cae05490a513cb", "stdio": "6f62fe05c5ea1ceb", "zc.test": "75583f20a922ab2e", "test": "75583f20a922ab2e", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "config": "cfc83b830141b00e", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "zc.class_test": "e5fb16127bce8f68", "class_test": "e5fb16127bce8f68", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "test_numpy": "3cd87018ba1e76bc", "vipermath": "3f7c5e78d8652535", "main": "49cae05490a513cb", "stdio": "6f62fe05c5ea1ceb", "memhub": "754640ce30cfebcc", "zc.test": "75583f20a922ab2e", "test": "75583f20a922ab2e", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "config": "cfc83b830141b00e", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "zc.class_test": "e5fb16127bce8f68", "class_test": "e5fb16127bce8f68", "stdint": "f5522571bcce7bcb"} \ No newline at end of file diff --git a/Test/TestProject/temp/47775d5e50909338.pyi b/Test/TestProject/temp/754640ce30cfebcc.pyi similarity index 100% rename from Test/TestProject/temp/47775d5e50909338.pyi rename to Test/TestProject/temp/754640ce30cfebcc.pyi diff --git a/Test/TestProject/temp/_phase1_manifest.json b/Test/TestProject/temp/_phase1_manifest.json index 2ab4d49..f3e7a91 100644 --- a/Test/TestProject/temp/_phase1_manifest.json +++ b/Test/TestProject/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject\\App\\config.py": {"sha1": "8e0d8fdba991b3b4", "mtime": 1781111175.0269876, "size": 445}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject\\App\\main.py": {"sha1": "49cae05490a513cb", "mtime": 1782949786.0815294, "size": 8223}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject\\App\\test_numpy.py": {"sha1": "3cd87018ba1e76bc", "mtime": 1782828269.700148, "size": 40140}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject\\App\\zc\\class_test.py": {"sha1": "e5fb16127bce8f68", "mtime": 1782266207.4312654, "size": 6472}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject\\App\\zc\\config.py": {"sha1": "cfc83b830141b00e", "mtime": 1778402243.1661563, "size": 531}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject\\App\\zc\\logic_test.py": {"sha1": "faec3233d98371da", "mtime": 1778402365.7843194, "size": 8848}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject\\App\\zc\\test.py": {"sha1": "75583f20a922ab2e", "mtime": 1778401973.4865518, "size": 8976}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "47775d5e50909338", "mtime": 1784464283.860502, "size": 19750}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\numpy\\__init__.py": {"sha1": "c3a6aed1f1fb8b1e", "mtime": 1784446436.2910569, "size": 39111}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784464295.903657, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784387475.6951904, "size": 10395}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784375629.8057406, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\vipermath.py": {"sha1": "3f7c5e78d8652535", "mtime": 1781532528.2518907, "size": 15412}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject\\App\\config.py": {"sha1": "8e0d8fdba991b3b4", "mtime": 1781111175.0269876, "size": 445}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject\\App\\main.py": {"sha1": "49cae05490a513cb", "mtime": 1782949786.0815294, "size": 8223}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject\\App\\test_numpy.py": {"sha1": "3cd87018ba1e76bc", "mtime": 1782828269.700148, "size": 40140}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject\\App\\zc\\class_test.py": {"sha1": "e5fb16127bce8f68", "mtime": 1782266207.4312654, "size": 6472}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject\\App\\zc\\config.py": {"sha1": "cfc83b830141b00e", "mtime": 1778402243.1661563, "size": 531}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject\\App\\zc\\logic_test.py": {"sha1": "faec3233d98371da", "mtime": 1778402365.7843194, "size": 8848}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject\\App\\zc\\test.py": {"sha1": "75583f20a922ab2e", "mtime": 1778401973.4865518, "size": 8976}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "754640ce30cfebcc", "mtime": 1784566611.8434613, "size": 20300}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\numpy\\__init__.py": {"sha1": "c3a6aed1f1fb8b1e", "mtime": 1784446436.2910569, "size": 39111}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784566611.8280091, "size": 10395}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\vipermath.py": {"sha1": "3f7c5e78d8652535", "mtime": 1781532528.2518907, "size": 15412}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/TestProject/temp/_sha1_map.txt b/Test/TestProject/temp/_sha1_map.txt index 848d256..d5b4065 100644 --- a/Test/TestProject/temp/_sha1_map.txt +++ b/Test/TestProject/temp/_sha1_map.txt @@ -2,9 +2,9 @@ 271ea3decb810db2:includes/atom.py 3cd87018ba1e76bc:test_numpy.py 3f7c5e78d8652535:includes/vipermath.py -47775d5e50909338:includes/memhub.py 49cae05490a513cb:main.py 6f62fe05c5ea1ceb:includes/stdio.py +754640ce30cfebcc:includes/memhub.py 75583f20a922ab2e:zc\test.py 7e529fe7a078cfef:includes/w32\win32base.py 8e0d8fdba991b3b4:config.py diff --git a/Test/TestProject/temp/_shared_sym.json b/Test/TestProject/temp/_shared_sym.json index 8289e08e1440b2a4f6356441da04322cd370674c..ec3bc85487473ba2aff630f8ef2594426deaaeda 100644 GIT binary patch delta 48403 zcmb__d303QnP(iwGIqRxcRPvu89PBNl1jUTLu?S>(7~7n?2vYQs%v=#WlL4+T5L$- zdBQdz%oAX{KrI`P5Q%cJ~jJ2_4oPrK7Y*~OaFNB!E0{5 zRsZ;lmTP{q;+pt*^fPjke(3JFru{DcCN|M=Pu zK7YDP|G4EJKL0=ez520r;XBu!U--@!{`>>|cEK~({a-zw^ZCei&ot^cH}AS`;1T`f zFMo2~cOTO~Uc9^R2Om{Uc(~(-b$?L()c#@J*Q%br@!uZ5>+Wa&DF3<7x%XBgZup;m zSa<($@rQMDs+tX3KdNh~ej5EzT~qbbV?V0V@$jGjtnSX?|MH`{2dW!<<;QjP)lZ-N zaoxP?r?36ER+m5hab3rZ%K0=7|JNVa-96m+le#;q;SBtw?ylkWKdI}ees$(2bziD} z`s<(6HP`6kzv1H<)u{ZBBXzeA|M5@jzFecpjQq4ahSNW-s~bM{(^@_K@TYZ+HJbe$ zJ|6zs&+2AXkL{VC)pb@sJ@K=;*6OE|KdWn~e)`bQ>lRi&&Hua>-0`2+g8Tn|UJLHm z|EktkTwFqy~U)Q3T@BVe&(rU0j{p-3%tDjoGs9Rk9H1~^I zG&k~#TEqR{zo_e~hS2jjb&pj)-TybWzWs;4sWq~eU)CB!>X&uh)o{=MvaYQLsr=}d zbzd32_g8f@s$0zeRoz3?PgB3Dn_d0%)URq``R{*KYf10_b*)kVF`m{KU;nSc3*P&6 z-Muy5o&GiU?0@}rtvx&AZ)*_9@V9C{-Tb$;=K0Cr)*9vi_}jY1>e;vcrmngAY3?^Q zzCHiJZ|a=J>9N*mOM7>;E!5tf=<4X`8eVwg_4iaiP2PC@?B>dE8=ueiXOgL0qVVi9 z8;CnselYxRZ@fNK4eZ)4Uca#F>G?HZy#D(CaqX;YuKD<1O|zbLLd~(}w&o7IGtwE4 zwTB8X7V6#m!x?*BGMlqA;h4RlKb^^i6Pa{hIFV1q;&!6oesk*hE5#4r_O`fI&l3Ki zX>~4=vn_Ay#p3P}Z*auh{I>W0KueW#{u>^oya+x8!?oAC1G?^=@(7K=I%dagL& zY{Do4jcj|qwQ%(stN8XY@6d1%{3<(_&!mDqH1;e@<>p((JtN-n!;|}8@pkT=+PV|- zXLtqo?)8yWyw?u*rQ>=0r`LYo?hQX5$rRj>cjA@FU0cwJgI*>_Pf1hn&5`2X9l(+| zc)%MQ6&%W|f_r-`V-u2I$VB@4u`+#;BoH;BK6N*j-rQ`_Gra}|S3KpZW9Pj0Un-qF z?d?1nM3+OjqJKUkzCH`O1fXRlTU)}pjq~Zh*7D^~J-%jRzb$?HxYYgUJ_VV1cY3I$ ztE)ZHk!Wsh3w3tKT9{O)Jr&6;N#!yd3+}CgDbQT;(6Pw_XA16ht7GYY8*e5q9-J(^ z?HxHH3tDi$xO!t>G~K%<;zWD#!9Cu`u6J_Sd^Y*sTi(v|fK+gANT!lGTD5G!z26($ zGPQXKWLUhgdFsG9zr)=llVh(G+-ZqqDlSWWzjyF$^M2yO>7u*M+ch+KYNUANWO3W2 zf_n>p>i}}tmI-uUy$R@|bh+RiIBe-TTgAaW){1lrGnn3+PCu9Lr@l3~B@<&iyo+ym z+lI`%rUrHqvF&;aG1Zn+>NTedu;^>CC0ci)RD~ zZGjy}yi?mJ-yic1Z^xc5oqCi0-ZkXI4=upv_g+0>HCfFIyc5p*rH@V)-0LH8g|~Z( z=f}KPj|xO$B)qA3DQ2w0IMU!rvJo)Vg8OBe1`we(0)K8rdVABcNWr~Xf1DLcctCyi z$vJQE5Ju`b?jD03O&l|L$+Ju$;ar3%q`R`AyT=d-ZCH0RaTjJ9z;N;CCk85r4eN^y ztA-FNT|VG#J_)WtpEyjG20g?}c<%$30SGtR8$g5#K*Q9)fVXwDVrc=QxaqieVhA{! z96T3n43?ct*+P~fqOkx`IM@{4nf()=Y^x-M5U7h5s^HF002Ci%yb~OmuIcI1z})DQ zXu<7K#OYj>IxEK{%Nij2TNKP#K7(^3S8yM|VN)?h%ut9#pkY3$5zWT|W9A9beyx~L zMXPe^19=qOwyRMeojB#l#z^SQV_p{TYHf|S#)h{%J8h=Z8R?33wcuZomZ;q=hw$`p zG?_~GhjZz0JfDi&Aoj<+kuBDuWa^22t8{tSPr%gx`I1Lj{k{K*W3KEbc$6eZGFdk^=-wZcJA_qoUM9UV(lHxEnOXL zosm$qtF4`nn0tL;NNt2zI+e{uh}`CADQGe8F>7*s4~ZuSk9Zd@Ko$rJLXZbEu~vd{ z+((3vte)C%41e$j#);=QG-DdYgYV!VK^HW5_wHD)4c<@k8EtkwM4Vc!IIJdrFlu1S z&_py7ig&!ht;M0^2H6bocH;W$?3A5J#t2-_-hc^zQy6~n!vo;(liNP=z&|g%I&oop zaSxCR_*>vyo zwwXu{GKf06KJ?ytsd)IHm5MlhHqo8|iK%%zUxFa#-e`dixXtHjI()$K9y?G* zh;%Ai#e?saM&A`l2c$bOx&z2AUAp9rLux$@AQt4y1DAnuVi9k>WI1aZ!{Kc5yLLJe z4%g4N{$b1O7Ucc1hd`MUEAPi-auBT4L_{>_qdAgGrXds3!5=(=fJzdHhqLK?CI(R&Bwld8hItl8cS+OI*)f{ld+%BFGL^PU$6RmAX79`=IDiw8 zT%;?Z$Ox`SLNM=LGMg|`5DV(iVyqniMU$1q*M zFyzR5d{st%hSZ3y|FI>{vOUbSj&Q&ApQ$EcJ z$J-T=>^%#5#$Esvde2+M@-7|+?H1gbU;&v(EGPn2Q{Oi#sE-MP1YkpdL2;0dqXiC~ zQy=b@FTl$5ruB)MNwBasbj{~JCzMuA-$Z-ms3}(n`_t*(`4*AH>Agyh-}km?ex!t? z(s8JML9hWz20^Ugoekb=Hj3Vnr0yhfnr3o#TqV+xvW<@SA8d zhr{dP(vI`k*SxY;arZ}H%Cbfn(!|9f@61K;=&3`8gRhiO5Q5^DOeG+B!-kO&3UZ$+ z?s&Vn=d@wS#Eq9bP)^m-3)cqQi^wn_lrS#mTY_yG)jY;E|JB&oI8*H^Xbsd?hRp=3 zx31#0cZ)lB8l))pFW;!iWBiU96l-@fy@GpZG!JVCabP`^Ft&2R{W|0$G7j(orEoF6 z2W-mF*OiBAf#(nuvLK`&j(wR}PBwE-4D#MZ(z-~D%;s={z3Yu!D&)`qGWIPYp==#XwYM?pr@&^*Hll= z@x8&WXTZe-eJj1=6JLbGDNv3mKb<()Y^acMgcP}+VHMlfPRP!0z7O%3cXUEXSi z`=a@He4}M73`#$B_x$5P2uQn;PEr9?aKEC?P`0sEbx_C;_w-Ji=d^TpcSXAron7(H zP)kcR!OM2z8f9&xlW?^L0(bcnUViA^-;zDki~#doPhFS>%)` zuedzShd7S{O~R&)vXD92M7F$q5|6`1)>y-q2DwY=_`WR-#K2%JZ)i6*9J8q_bQ(1B z72GGhQ%(?b+^Ii8ZP7%ZN;1}#17V1@`n@eM*?7LMKb*u0+JqfC^?(mc@4%7C@i)9J z&Ig`5D(s9-D2xy1TWEoI#s#mO2jfdNmygyHGiIyf?0Htp0+R9Rk;px><#a@2a8feR ztm{ojAx9DW0}+a$X5zvCOtF@{vSgug*cDvo790>|E!ydbIC7GYDw4NJa@Gp6Pz7;g z1!?NQ7H`)e7$)>}>N}NAkx57Q{s(2f>z8HyPe=dyg&K3`XBvTSWCg~+hm(E*GLPFE z3hr`sIO*rQ`-5*=P->pHgxybm1nFrvmNe85jb!aOs0cd?svEI^!4Y*@H8f+Qq7kv3 zhewP9aHVK(Vza5lQj^~^+ZJWO=n8t6BSt1^Ql{F${?KB_Tf0Kd-66X>p6KefnK#@C zglYZJ7rnqHW*mLu&2pM2m%Ub}+W1hw6TR`H?Y_ck~b~l6D$J(Qjj_#J>@Apo-!Rd}i678L_ z&Ujm_y|t?u>x|DL?RJOV9f@>@LeUnONy+DP6C4U86^4mM3+_TN77{LY4T*&Vf}99` z-jPu}$AqD!>2slnEW)4#O9(~OHVAaFw3A9C*X1*IxE~IlL^=bT+3PTl7KhHjKo5Wu z7vPL}8Mbqn)yazi52S&aF&m zlcZo{Q$D0Ne!qG|dL0St-?dXXr;WZeqsJkrSlz5{3=5_3AjSX0ZmflD5ochwmQI&t zY1tvCv2YE)f!5Bv*DhjZ1Vh*ykm&NUTvI-U(KXqrd|wmksMuzfGkF@!2Ez3n8scgg zhoC6dm zswO4c42*-i#Kr?f8#^=BRCW?NAPge~`G;{i8PoARXU=mFPvO91tNUwvX?ahLkcc!e z4j5B~Gx)R2x!eBI@pmDd;v0F6 z^OKZ;GapYL_^7z!r1$=AVpVV&Zazt@&^Wc9XLk`EO>MgDZ62~5d0@d{IaL^d^v?)@ zURDmiaoDj6?vIqzbNZ5;Mlb-uUm*R!G~gW^@eU1$hyX;9Er4AI*e_&R(I9D) zUOX7onlUj<$qXDEK_&)SK>;7x5`<>@qO*{@(6FJ>31Ap~CdYPy7s`9|4_E#^lJhq0 zFTO#3STv!@EzIZAJh@9XCr9?ML&wM`kkgx9CkFEkuAhOG&C~^ z_(W{i74w+*=!BNn|%mqql zsdyAx#H-$cQ5;LcV}y~(VG+P9ERgeAHvtny{|w;ir=D20c;%W^^Q_jEXDsVM>-lst zKIdut2yn7EtjmEWXp6Xzc~(c;Gt7S;BwPN|_{B|Np%#@%CUIoGN?#Iu62t1As$YHeug6Fx3%E_Cgq4j|h@|zVzz!wu!Ox z#EVoU4=l*|3l3|@y3-k;l1_WzeT85wqBJnX@1ViTu0f>4qU5?Isdy4X^4ew?YQf4U zop;ZAqcB7c;$4Hh#9+ZnA?o9W;lzv@!4D5ry)e!|c%pG8juwPG2r>f}D${F7XZpxa z^@b%$C?Vuvf#io?K?UL@kc|(DmTeAQiF^e-risxLaLZ_bdO)BIC^azOfbZ}#I=wgy z!g_oo4lf8_e&7+k6LJ6*IBbtMh#?B97(8}?EGPqpS#^0bm+Q4PBAW=2dQ!lnyuB(a z^{BC?MTd>GzEiaVj~ei&;_)hIyf8F%aG>ngY zuf*aF3s*lLUc6+r(*rZn1~U48?81r!EAP>dyhA%-lPz5)>DFgGydNe;x2OoQoo7og zUj)>O?;(&)j=ohqbVMW+v$d?pdV1Km@UdHbe=E)uwVKWs#LF_fhZND$+XGgZ{Vwcj z3x_T5{ljz+^3fn1Knwq?I06rGO>4hSByePuw)+=}fIN&6Nj_PaoFV#&^@axMyL(tu1RD=?s=`{!Sy61YOpE7HuQ}73!`i zrP?h>)7dqolswae8X|FbfSzSFe1pyj`868`j`A+}m$N2K%4uQkF)SjC9187#kF_)F zC|JD`GI`aAtC&AZr=V2q^I1-VSv`w9D=VLXX=KSNn4b#Je~0MNqJ^uMSmajb6)=D* z8?IWiblF;JSJiBmRc}Z>^8?CYln6B*`@iNi`+<5v~!KP7v0bOx|{ymPUHB zHV>y9B)gIjoA^C?{GtJYSitgSB>GT`=>E2vN)Rak6AAB%iuGe^ajaQAOKHFzZ9*`5 zFZft9T^sxgUak5bHg(Ojlqh83sK#k4PNE--n$4z9E5fG8od&>4CzsJpWa-O3KKRb$ zk(2VVGT^O%J2v=96;-d2cnaP%YX?4G?v4d2$l_Jc7zEsTmZN0x_g_L(+-zT26k8r~ zZSk%dBs7$7!TG>nV7t|u{Wi}E`6wh_60{>=98JO=9Ae63SlTrNP)RTs+O-M{!2oNC z!ZBx{8^wJp>V zibZ1G(MYu2vAYvwbgg%9)8=mqqGuTZcErc&Nbvpgy@vM~#H2*un$6~Nw_S@z5k?|6eBHDTKJM`F+6fTt$%XVs_JrrZm~ z1T=2gu)*(_pQO_H6j^c^g#KZ?@nQCHJ8_99AUFkgBaGT+#^nJu3dh93K0&CYa)z@b z&G(~KcsZaY%a>Rg?drh6DM&1xg_Y>A1L=-2iy$N!5n`BVC`)K4I+nxqXGQba!0dd- z&LVLJANSg+x%f}4e)nUi1{pF^@u@oERGe!@^8pKy<`S zX086_!e$Hp32Zn3rqdmpkg^4uB)@|#_eWsM0?509Aj2;tbL+#|^%1zIdPt0CQ?;J2l|X(C~RD$hbQQmgJ7$IOPcNiZP3sC^%*w?7eU*z;GI;=$2jtu5ylw zveI`<9e0$gMx=U4g0Pl?r0J8zb^oWAhg?0QX1!a#xVs-;2F$7BsIxX+1yMh#W# z&_Wj!yIr0K0{hP(7&P>BOwS5YXEH}oHn0lE4^z}dARe2-vDsM4v-^raj+BjjoVb~u z4CfIw9L`<{!p3n$d}Qd`@UV=^wB;@AG2-Eh+l zG~*(hrCel*w3D%tu&r1K7FcI9XDaKg;NIuA4zHJ796FYhFm4pwW;x_amrp}oLZ}sn zx`CkK3&epP_=sGyr{09;7E});B4UeNY;E1KL`Q3DsJXMF1!3E5;yk;3Iij1x{h9Q$ zHbuv!$?H{c3s_r3H+$z#PQJZe99$Bsh%KnTZG67}S*)~h-*T@&edjWZ0HYig(<&yeE6A&9ZpNg_furGr}u2ZrKgo|>N$&BC>op1eNHl2EkoXfQ7 zU^fDLDW8;&#xg8cOwlv~7z(^5`PhQQLvh0ihY^VGpk9p1D||yHV|HcWZ-T~uE6m?0 zn5U&Jxc{46tZ;S07sCrXabbt0NhqGoSb}yUy|F{)BN=vs)!4MK-{}X=)_^atl0<*t zVLx|8ALQ)5>JR9l{-P0bYOFUOx3g7n8vS=5)+bh5*a|AXSGO@?iw#zAfD@MwA*h&6 zn4No7M~t+9f}xOcvkvnlbYu%_=Ya&J8#;ndy;5>tMlhJ{9>EZXlFh_;Vom9M&gsvS zs4Y`4y9ij-Xr$eRwV{yfAfo96LEe5^`w^9hp(VHuXf53v5m`~4 zaxUrK!dNtl`=s3tMG^jJ?;?eL1h%?`a|l*S{YvfoD%Y0YwV$$;9mM6_4JRk$FTnw2 zj6{%lfq@j71jI>10>C>jXu zjKEjwv7&&RIIY$2%Lj_v-tdM-LuN zrwwCEbRYu5?nXTdIVkT0`D5*#PiB)*$ZwG8U`B>c@MGk}a7x|T(y2`lAH|jrL`c%B zoFMAl-!>%1ce6+}gPh3WD{R!g}_K5&*IvU=&Fhvk@H@Y=F*z z|Ki|zeSDFAN1rPBufh08eW;xOjN>%`(NCFUMNAFMb|k;^eieX#9EBv<(mOsVm9ILTTOqmv zala}jbe3wPJt4%+bbB05@JQ=q*IP}Rl5|^G`w$o^NAEbU=}NS0f5@wu?3Qqhk_bfR zELRG-I8%3wfh=i}5d?a+P`dOomKRWfHc$qA3B`%O(dT;U^1kBH^QH5YR7Xk9-Y$5L zS&fIqVeBL{X*eAK!P`aNRwQLlZhvp`-R)quGA&tu4UH5KL=lki3I55GazPv7jhEOA z>v2xAUX3p?P9;0g4$I~oUP^|6usehbOHdZ3py5LfmQT%>2=o%T26e={VXl`*O<2rH zr}7cm?B}&&XRx>hpv0Yn{Ug+^VnMGCm5$B@ITC-^02K1TXlwFzhfc#0E-W(1=f+VRuoVEG*c?*>wBmY1<~zO5IW{ej9E_t- zCj&c3s1kQ8oy1HmL6D#z$c?2<1q6Hw(W#MBS`Z~O3X>DrKzB!3Jy8DD<}bJ%NU#>r zl1gV#gE2d5$CnYiNu9nk04E&Xs8TozYrjC-M+3#V$U1a2@T+ViU~DY7-%_oxx{|HQsqF#GD|X=+ zesL9K!Iq)&BZa`%KC1AqS)U>eiW(=r2W}!`m7fxiFBqS=Z~{t%n#t)slg@5fHU@z_R4oB=m8Jcm&#UVa8nY!RVeYIPZ92j3CO;B|A&+BAW)ZLo)ar%2q0uOp)FrCpzNydL5|^AO{Opk6qUV*9VL<_S2Cn(}TLk#HGhj3#}C1 zv;_koawgv8ko5_JGZU#zWQtqLxyuAL%e1KAnpiV&w+NykV-Tk`69i+R`0P2Vxr4(= z&rozs0T-kk6xaZ2>ByH{DQ1ii$NsQVn2;FEgNT}dX?!>G1Pv!NXBXzJ2py-w!EKg9 z5(Y4V1A$WSR6nwZo>GRb9ISf+8p(I7c_hlw0MeDSQEV{;{M0MN1K8>Vi&!oOp9Ci! zlYYGD$;W_t7(e9fp(#0%QAJXej<`mY{|?lVfPzdRWr9Vqy_@Z;QF}8528WSA#_^@7 z`5?g=uzt!pOzrg^1c|iBry~*19qA97OV(HY6AsKV2Uuy;pJt} z1hv}~w8M_(Pn>`7nSly3!Jd|+b%i8h0&sHb?eEH=3i>t-R&8nK?%3{76meW>G^W%2 z2vNT}60IkmSn1=hCi*D70-${4Ew~c$ECtLKKaN?7V4~M9~cr2Tc zkRrSXtjeHRLQxBDS50~-?b~0j1XT;d4)`-6R{;6=ZNCzJYrqVmRR}eezS6)%@X>L# zZpo3dIW@P@?bt>dl0UL5G9t)uK3oGfxQkekpc)!TZ&6$gQFv4($B-v+%)xWAy8a5( z93G#EWzbrykHQ+jw3yDXoG~l_8yh%0IoxL>`8|%qtxEUPQi6*xrI?sJGj%9Ek=0oj0A>pB+7npF-o1}`6Y(LDk*I8qD~B{tx!p-ooa zNa0<#G5wR~9N$2?x0$RzO-5Pi+^dtjU8T8+JfTL=T!DAlKr#p)Ncnt}RN|0APh$$h zxd2r~AX!UE(HGSl6d~|{ejk`D;=y-hmCA%1I^hIb_f??DkwvLk0d0a1t|8v(i%nV= zBax|o?t*z%1O7h;|F?6o#@W!8 zK2w_5U8WD|!g#5gl!cD_bEHG@fm!t%tho!U=6Tje^l7!I9;sFpT-LoC!;$& zrHUiS2M7!qWKvPfMieiU0xBLn3msKLNp+PEJ+aj&;?$&r`S4Sw` z9*A9iyI8oxM#G_igjt8m_UWz)?g}N8vIR(_NYfwbmuH7cmp%da2cD}0F>%rY~+q98zr>V3Tc83%=p68JlckP+(vgcssHoDGVn1;#?U zj9GTyws#MzGGw_7P{u|cViNU$1dWu*$Br#=4+-f&dXSu_qQff<93Xy_oS3MNgL(|H z=a4@qbx#0Je0hr@c?DfeB_z|I8Rl#(wr8`?1*xB`7h~*H_XFX_QU!>_l}6UtZeGSK zo>g1VaUYf;{hpidzA|uX=gG5z`v)qJUx-5OYqS0qs%JdpT)F*HEVdY2sVo_DQYI&B ztqw8!j=vaY;zeXn?HQ3;lPDHYQ8cCCK3LwN;@k3&dL+peVoT4JI}|d$LWjXkLawCF zSbMzPjDXCopwt{DAwE-Z|QWJTbi52m2}hUOl&EfNqk&m=bE}h+WdZ7 zn9_q6Co_mSShWhGC1an2pFW0_y8m` zvfwr<&M&_W>v78B&lzs;0jg-8L@4>(;K2Fe7+=9Imr+`0eZ6Aafs_>_u zI9CRQPvYe1h3S#OiD{`X7k-XR@FH#BDbk!wUj$EDJ8ZMARuqqEZi}{cw07EdOg7Y= zq@$X6eEP$og2M&(xLB1WNy?(HmZcJDF!Nlpk@mmRTs;m>r4T&Ut%%t(y2y*Esop%G zho&|G+bFOe+RLteBF_~ew-hmj~X1rlub(21$$(2%Y z*Qi5Sn@>peBh$5ESBQtSnmb4v^oBMeSM@YiFC3&qUmVS3b(K^!VbPp%&xiE19#mQ+ zPG4}p?F}A9r9$ECB=Rsiwf`H{kKnPP0|4#(UZn~7w#ZEm1ro2|nkzXRsU?Msc;b=n zPTX5yciXM8mS{IAHP}mu=9W-*TdWIV1a_!{A6`$0UY?8=+~4|W?oCGFC)kWht2#uw z!jNbT=o3*ka8|%vON6ocq&IhPM8=OL5h2QKs`4$#gpBeLFQP_2NDACcG=p3#~PkV5BcY6qxq2qRIS9cUe%%j5( zrKf$*iI67PMIW|zhB`aqOdvP2woCEX!m{p%)FwvtvY2QchYG%FgUdtF=Bi{cwQ=>R zhs#2DFRH*Hll{Tu<4{dR{55sxIBXPFY$oES|0EQe3C_Vbfq&UDXSdV57$hghAPmT< zuARm?G{O=<6lJy30UqC|6%wEjPtV_@b1FL5nSj909|b=V-J13oxg zN`GO#_9YnbxLRJXtxE8*ybO#|iJn$%TdwUjLewYX5RuU)sm$c@XUXjrIOQNBP+XGK zS)MN^qbVAz1SR@Fm5DH%QdRK|lzR@uWmA8s0}7ELf~@3)N|upPoE~=6#(O$4&x+2o zV$X1hB)vrjOFeZq8)sL9%ivi^MD_+DB?aUxHEDf)07?^S$&kbWj*MpK8KQ-Pq7~Op zMorC0M_p4ukus*KKe1%9xML2Mwa-)V9$9{7%WNP50ioKMGuW_Uo;4T$M+qPc|M}M& zc-5x+{nJWPa}*JB#!!aXyYR9%QZVfi0Ns?%pb@tJC$Uv0fo+`2!d6Q%{Lo~a-c?#q|LjB>fVTnKu(%DG%|*2BxA|*5lH2} zY#AZ!^<^V$sx?CWQRN67gnm;bTUG{@%}28_6iWhgSfv>GYW+y(0~zNt4U_V`Dmgn3 zp8}EJKPEg_TZVvBpJ=2jhx-a?Iz~L~*5En`y-9dHODM!Pu$Bl`V0NK+AcEAjordm4 zP?jC8dMJcA^~NQDCBds)?)IF(N7&eXk>^kXTB_IKG(r?s8CMMuwN)?Erfr_vNaDB1 z^Yr^sT1%|7Wz0!3x^ ze_aFv5TXibMc5?2M&75&qJe@zC9Ndg1sd`5Do0kvP3+1q638&AdUoJzAyP11DL<&- zGTR&^XsRF(cfvQF@T+yO?%qLCnQljipCI}VmDfYR(Ga<4pspEcirV1r6c8b44}y3^ z=%!JgUn&N`OnxX0!%a(fv?~715IBU|e#H4_L@XAY&oyn2uT>96eZfR8c(%O9_;BdW0aweFa#F0Kav#S;P z$dS$#yQ`%;66)$e0xdou@QA~^0(c&-%JQb|#JfqS19C(&SK2A>i*yWBgm2Mz+0 zs-iB;0?I`!k&&VFAkV!Vu&%~kaEnSO1uO@C9VQ2g%$F}zlz~L712S#|DIPo^kTFjp zewCRA+BJ3pxW45Rp(}7%OR5DdT)E62r5I^oTarW6+v!kPycXd*+5lhCgUX2|lNv9} zlgpo2@mSO9Wq-URj5P4$?@o>#q4-qRRY<@|cC@k6=H<=amXCu-w)=W-Yw6So!n2Yev}$Ds+S_b3aS*B=4yJBTv#}VQlPNJDeY1ahna}; zR8=`xK_niifCKhE{%X>w-AKU>PVA*kaOVMug&oQIS~Wz`;s9_t~Lx$jk#i7UoNYeIg1|&@q*_JU(uT>1g%KOYErK%OA3TSi!69|$k`EDgbY)ff} zLpLP&IOXUqGOPH}PRcF=KBNL1Zec(q6@*b!8wM1v@r>HsRP&)qBaHEkwN+j#7HalG zC^906v3h(Ipkc$Nmk~o zCm4<7BrsDbp1KJ0DHTc}?v~6rV&g(AE`>~z5357Df4&+HBl1?lCe4`SC#9aA+Aeix zeMR~XJqR2lT;VW`YQFHqlbFT8R#4n6hvj0074Tx;Y1hhm*ME3t8z@ zLHHq}Vft;6qY~PirhVEa2zcO9f>i(#6#(dWH2|k31n_E(P|dxN1~q`|y@W|XIx8N! zjG-&*2X246aDv!=5K~|&@L^+0>X6_yq-r^vPg+R(C6r{J4n4!U<@DR(2hCDnQ7tR- z4cO0zT0Sc2i4O$Yjk0KFQk}2AYx^i8Y~;ztFOFDHzHT_*v~mW8!9Lk>1Aao5Pyz)>xV?k6(~3v*M)MqxFT z1IfZ2lAM?qFeMrQ;DEA<6(Q*R#dFSPS>ix&07h-FZp2%$8;}l0Idjxo|M5I4fzkCl)Vtao-t;4Q3#a%L840*UqG20M;numU8&k0!551o<@QxmDKH3 z9CMWjC5T9Mz`3V}sV=ZeRNIGm49Z(G3uo~pcq|9OhNuFXik`3JLbo$?6`>nO*%1~a zR#DQpj^7s^PSq^=X1wAa=lAUE4rTCH;k#OBeoSo!eUG4|g(!Z?l0K%u;yp!hK{s`9 z$q{lfp|Y?>Msq(l$UHSjWU3d!gfUqOnko*KAhI;A-yY`j*b+p`%#Ffpo)je(HywOP z1+q`0#xN7&t|9BW7f{(^ol<5+9QI#|j80k&W+GaJ^;J_I2ZznQwKoR_fxCPCg;1Nr zp*xQOsbUzD+mIOc9^>Il0eFM}sj4FtzYA;cCe0J(hVoeuK3S_U=%L-m6O`R2_WAxbn%2un;<$R@0X(<8KP1Ft1+_dJJK(LV%nrU1~mk(u|5KpmYW77)YOX_*#ValR6 z9FNh2BJWKiXv2g>bivzCAcNBj!w~Hc8$ze-k}Xt}JBchX1lD?Yfs~w!;GD;SsU|wGt+@RM;ur+&Ar~I^n3!A&22H$0Ece;o zWDJh4gLL*9Yk4C-Rk;!6 zJSd?0Eq>0NX9Ygu)>N!ZU+1R4;L-P`*qVX{KPZf?=12){t_tc=oF>4D^yUh9)ndKr zEM3wiD!YI1SnEk2)w67zu?imryO+)rnRXK7}oU8zYNnUKKZxy6;H~ zBD_&9TMWy_!q3z;}@*`dH~VC+%N9sxf! z&`BC8cOUqCn}$QxpOn$q7u5Jp8W~9%>2*?BevT?>z+<2=EIk+>ppL^MQHy7zyb{4l ztuj#@%17XXQ8mHhi0)|YE+S{-;EP#_6aurIEaQ$WQv^yd3 zDEnfdPr8qT&5JTt8nm)1l2MVuoApIi#`;n<8Rv)+)I^)-VzvP&R3t!nm_?d_LYm+V zu(XCxaWej&JJ;0uJP(G{{iqF&E*++RV zJ3D=N%27!VOpsl$1B{SZ3i~Oq?56yK@Jx-Yt> z4o)wXCoFP1yC49C&j$Sif*Z&t65ZwkTw|m1HcJjp%yYGBx}Zwr?5ST?ZW`V;e|lP8^3X#1Vf4N6_L&yDg&jMAxVRNJt*lEU(rn%g-;0kvmTyB z4lTdqC;B6QmbceH9#NhDyk_TcBST^#@T7{v^F_C>i1*B~(hS3rx`R9@+D(=H3Q<(S zQMGfeSznz=1l!0Jtw~CoISZHs(NN{*Sqo;7&_*t&vD45iaUrhRI3_QWR+q60b=l9y zuR$Wm6z5ZyEoy*RswWP@k<1EN1l-PWTbL}23sdoh9E!6V(jy$l zVqBcKbg1+(sd#WCn4+ARm=f66<33;;7E)L0&an7!Upcrnut6vygto98Tvx%Qd+r*0 zdmWu4tEd^kH7#F!PZOq)pkJaBDt{PTgG_}hQMhbP`f;v1LwGN^16VzY>y!dpCI-#8 zrPNW$a*(6)7<5K8G6EpQYW~%PV6LXXD~n9bct$7~;Oc((0k@}U#(GidpkG8chgLBu z%26rj-Izb$CCdB`(3Q`Zw}O~7fnLR4IeP~}6z4%E z4wk#YuzPO~!%j`@Q5}6X9W1kmeKOC-%EQW|ud&m8BV|NoK-?vBTV+R37#?M_2nvH} zm6=ctr%RUvmWBdmON8VdxCAi|4p=!hiC!G{Rz?-}G>W6yak^7-IZTtNLj%nXK6oKM zTr=vEBGt-MFNunHQ4~pFVWbD4U+Mv&4AFR33nF+UUCr%n9kEVHtGIzOIF_ioQ1{4z zA;*`B3RV@NZd{ElgH?7GNgqIb@L-YI;h_o}M4)PlY+C$fmxMzEzsJ7kxGNX-KN6Zz zcII&hXYSHv%a^QX^X4hBYTm*^8fBeON(!84t;&Kc;mSNP3^fSbP>D%1!S0Bugejay zNS44l72Jrre?uaww`_K3P>5mVWGO`e+lKTZ4|MjdTD}x?xqK}f#&%sgP!e@?} zjbiH#I60VCljT#KJCgVJec2p*Fi_Bfl9dmR7Wd)SU2%NVb2z^PpxApr%!}?H60ZTQ zg7{1dD8jW}`7vp|zPsf+-}w%2GhGmq48~+vq@L)XR`|x{Djcm#^5@FZzyY%6Td+sQ z5nHDn7(L-^!9iIlBOmPBSE>RKd2;>PK z@H#tX!*Bt^fu3){U7$WlmEg%kV)<&w7z>94*(VhI&%(-G(qk*?wT4BVJB zCra*6csnV)qPYEh>7zs5Hq_HU2!mX~{Q^!o_=0XAs^>e(;KZUwzJBOHLA*=J0Lppm zU#D~(dzaDPi~+lzpZNgLUf;*0z0p2^>-pn_SgLvhLS~^S;qbjrb6{e|Jg^Zc&igji zs;rZH%^=m=z_m};^7(s%3M?as=Ph_r*8EP>9B%?mo$GrfRjaV}pU4J!0#{*EI6F3X zNnbb5JD2|@-dnh1CU+>yO0WUuB-Sd=y-fB1Z7o+2xs}#|CN6D9U>OS7?te7asD@zf zgpf-NfJP~tET#q?mU30W%w=JO8W^%&)CF2F^yTunkW}4+Fb_eB%-$i{EN~NO3}eAxk52 z@Rei5`W{K=j*ZYSQY%n|0ErjYi#!^zQ@8^1nUu;0ROV!ad)OIuW3Q4M4U)NCTca{T zV6{~n=CZvQ~%J6%m1GHndT6S{ZvRznA3LBbwamkvY1 zcrY%Cr*~$jQYdg+>tcRZMt(l^s<)a19qiKUdzK|q0E83z!6g4hnd(T)k~CUu2=&30 zKuU8B5)kXqfC1hPfcT>V-VAw7;GB4`Ew-F{%np&aW#E=%GHEc9+aI*)kFu-ofrTD^ zT{gM^G=3R?cEg(Vb9QPaGzYpJ2@+~mlrJPf z%F<=LDUEg~z&-h8090KMUBQM?0qyih1u&qUo(7@0LA2A$GH6c&zN^4{|hLFD{?+A6p^p%6Eh?6 zIEN}b-^0UYss8%N>=)-*`bTv3i*QCLHpn0#w9JQ`6@c(n`uK@_u3j{b*)QS%(NHy< zPXP+Z;D2fWHeF$jyPzuM4?3tgIt}8#sg+>NCoJs$bYvK`DCJbttS3b!X)l14ZM8(CU{q(ecQ z3u|D<`sxaG|1=tzDN7n11Ext}rN5BF%1}pFy9a~2C`%P-E{HnD zx7ZaTr$`E?Us;jCF*H>-R2zxe-nf_!IJWvp!6X!O{#1xu1v8dUIdrcI4a(H)wkn6H zNBAV&ZGOceGC-*%sm7>nlUEz#lgK!~3ea0rCD0fyOsB{gSLeXOS}2b=xr&7}iJ3o$ zij!L*iWs2^!fsj}cID8NmeWtU?IP=P>sQwQ>1SeDXx zR992cB~c_SN|X+ALcPHgh~-Q(Q(&%mm z;c%Vpq-SCn@_xp0pA!q{^vB=2gOBU-~>uC@Q2c?)m7x8R}ZJDYUjlY5V+PLao%yvMO zDujlr@N8Mn#GD8;X^y=2KOQ{}QA8b{Gq5xW&jlax>HN6ZS!78RwQGwV`Vc8m-pYbm zYe>ZMHlL^Jr@Xy@U>U2E>t_y%3%`Rc@Lp_H*3+}r%#x@bCQXVBGM|fS{-B7?WDapK^C%eZ+bxSV?08Yssh(&BM= ziAb_iBvNk;x@3*Ak$901mw=96r9{>}Tb2H_MvsxUJ{#h3LF0NGw*xW~-4^j!!3|1; zc$zt}nk@y^m`Zg@K%z5`F7#s{3dC)yrR)_BS*8QupTR^Eq!ovRH-kh?6_m@RPaq*c zjlFhQc(~e94NMb(sCqdRj*9it>!`?01L@FaA}biU##{%Ktquz_e;#%xnlSIyBq%d1 zPp{Ds;8Ib6F}z!>8tnfTb(%X=Wdk=UqP!n@Ag`QZa*sa#$u)|S({?-?{} z7hwuK>rv(Q5==(Zaq_frOo;>s!!pn6IrfO^pdyT$_M3l53tWU;Dy9DEq1`ZSihu?X zYIos$zSEyUAS#>+Yw)})gTWbVm z(7yg1kKVN6d1P87skjE(5qprN z1Lve{UU(o`z*fa0Q8JUSd{mCUZImbL*NT)H099ov1F%&b(=n>wB)&u5CaAk%r#O6* zF97@H)PO@lb>a)w)dxw!m>3_o`kuo_RztslmA59`uXJh)DI=UgAv3_Km6dBTh__JD zOS&Yn>?Sc)8nlT6^Z$fAFH;UzxkMKNM2!6bI64{<7{&aHxB-YknsLbBs496y7RU4# zC=Lr4r}97KVJ@t_o@`*)#js}>X~I!4QHb?Wr50<=22c>tF`rsuMJP{9i!O{-nlL^= z+HT;Jsoj^o(YMU|w0P=(()r4o!ZUH`{x=f)7$@=(VS_-@KY@UY`ETVJ=|B>SEfv;Afg=@)+1nel2wj94F?Ew5(1_2jfFfCQ zACnT`Vy03P1LR;gUtDpra&D-tO(W1{F{u`|kE|FZ^}aaBPG5C_U{{!XG`27yMwVa} zmcv=NZM2bhHCdN=uZknp21aU_X_Cm?L~kc zytk-wMIGUW!yL(K<$(l&EBpMI0x1xxV+wqP2+9$Bp+l}}E>++%Ku6sMh2zje=*=Z++!Z*3Y+R%A z;oQU^R7e{Ie_HSa7f&DOLVd(@bumYB#7dwFZsIIB`%rM1rw20(-Al@=f!$zl0LM7v z?*<%jsdaPbQgSi8Au=Q05BRVal50{sN0aCXMy6w2JQ2JK@5)==EP-5}DugbBLDWt; zp{uc$5xZ)}7og(OSe^wMs?4lP=rVe}ATmaXje1|?aFb{wCSKNqCZGVpUY)7{ZOY++ zz&t;-?-c|^A@oQ#FC+N(!^DKY8rac0neC8{wWT#-deDBY*>LIa4HA9$Zr&HS#g-~5xf7B`!& z_fD3M65c!?0o#hsPQZlqPLK3IG-jrRqdF6kqu*3 z$hm^dU_Ma$q{cSUYjzb1GEmevmE2cV=BWIvCcP-7oqGKjq!Q<~PvNv2{wndMO1a_D zl4}WfMYOaeLh)!vN63!HsW^JQdy|MkI&tRf@>2zhh_QvEOx5ifj;i)c4uwm@lIZ7G z4~G681gBhNu`84dvk$)*nDk5uE*jugq0faP9BZKho5GUXb-0M{%Y zSmpD1pkkD=esIxwTepY-6b0S>G&}9@zWD54fFZlr!uL`bUY48o&`tFF*`IF5zkarT bcw=tbUwr`PkZe1_`NMZZPot=#~9=K delta 2184 zcmZvdOKcle6ox%^d_0r1G-(^Bfu^Lwa_mrC&wHkTf{P(YJfxPEMIZ&w!%Dq~3dE%< zL@f(M7EuMl%9U6kA{DBZ1X&4aRFy7Tl$KO}CUIiNQV?B`1q8vOQV}4Sgv=)Q?(YBH zbN+MA%o+Rla-jap{_On*DvrkArvlR*-c`^4=R?yy%*x))bF(1JvS^5=7*(Sx&nwdd z!7mOvfzQ1Xp4dEF6K-m((-FguP}_GnVuqvYFHv#Ju9My7z|jko=y$~57pa@zh(Eug z#-`*4-#;$m**p-GGQ_k&^{oa3^d8~B8+aGamwtwV3 z-{XiMir%xmju>u(%imxFBPj`_M*QnbtLU_jka%naOjU5>_b22pc_j= zoq6DJs^#GzPRH|v!stdBTG6k0*pDZ46d;7t;{`Z?(~k?JlBEJjEnDY_ptSRknpRoi|`OmYeirQC3b|ERunCP56}213%gKX3HB1wUM<0cXuL!!lq*4m zkg;M1qhJ}j@Iw7%ka2pk3_MO(%kUUZ19K3=X?l+2``sML_un~^?-TQ+xApEkJdRhp zHBVT)u?5oJ9bOWhk39;5x z9nM9XSwo2Gf@bKdAPKB4qFAGE4^B@u`oiqi*vRR(PrY?=a44Bc^`BY)ao!q$zHjtJ zaWhYoFNRU;Sd-6p&vPd2`t}6fnL?{?(%oH($R~6|Gm^Thak8En&Wtuk6*D1n3aiLG zCkRQyhF0c1`W*^gJ4c5@yvoXop^I8VQaMfKHgfo6l4GOxzipBiM18{uHGEDV-f3ec zDN3fmabi+m_d=6j(tFVBm*`e&_8R>tg_!GfH=4ap_nC6D6flB!W0bqXv48tx($Wz*tr9D=+kJbLi?@!8r|pFX(uY0!3n%3o1!MK*Sy-w z9N1;rvvM4-8HuDSB%SV$TpKd=%m}*B#mu2=%svk-IiKbF9O7ytkO diff --git a/Test/TestProject2/output/0df65b8ed15664b0.deps.json b/Test/TestProject2/output/0df65b8ed15664b0.deps.json index ed9483b..3843178 100644 --- a/Test/TestProject2/output/0df65b8ed15664b0.deps.json +++ b/Test/TestProject2/output/0df65b8ed15664b0.deps.json @@ -1 +1 @@ -{"hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "testcheck": "14d33679f7fadf1f", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "zlib.pyzlib": "1c46d554b3a3f9f3", "pyzlib": "1c46d554b3a3f9f3", "zlib.zdef": "213348433fb01cc6", "zdef": "213348433fb01cc6", "binascii": "257e074b935c33b4", "atom": "271ea3decb810db2", "zlib.zinflate": "451745df21e598af", "zinflate": "451745df21e598af", "memhub": "47775d5e50909338", "main": "541a1ed9b8be53c8", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "zlib.zchecksum": "8ebed83a7817fa0c", "zchecksum": "8ebed83a7817fa0c", "zlib.zdeflate": "90921d009fdd674c", "zdeflate": "90921d009fdd674c", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "hashlib.__init__": "96837bcc64032444", "__init__": "d63d2c2a2bd9bd2a", "hashlib": "96837bcc64032444", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "zlib.zhuff": "d541ade6afb689a5", "zhuff": "d541ade6afb689a5", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "zlib.__init__": "d63d2c2a2bd9bd2a", "zlib": "d63d2c2a2bd9bd2a"} \ No newline at end of file +{"hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "testcheck": "14d33679f7fadf1f", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "zlib.pyzlib": "1c46d554b3a3f9f3", "pyzlib": "1c46d554b3a3f9f3", "zlib.zdef": "213348433fb01cc6", "zdef": "213348433fb01cc6", "binascii": "257e074b935c33b4", "atom": "271ea3decb810db2", "zlib.zinflate": "451745df21e598af", "zinflate": "451745df21e598af", "main": "541a1ed9b8be53c8", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "zlib.zchecksum": "8ebed83a7817fa0c", "zchecksum": "8ebed83a7817fa0c", "zlib.zdeflate": "90921d009fdd674c", "zdeflate": "90921d009fdd674c", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "hashlib.__init__": "96837bcc64032444", "__init__": "d63d2c2a2bd9bd2a", "hashlib": "96837bcc64032444", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "zlib.zhuff": "d541ade6afb689a5", "zhuff": "d541ade6afb689a5", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "zlib.__init__": "d63d2c2a2bd9bd2a", "zlib": "d63d2c2a2bd9bd2a"} \ No newline at end of file diff --git a/Test/TestProject2/output/19f8024d10c828e8.deps.json b/Test/TestProject2/output/19f8024d10c828e8.deps.json index ed9483b..3843178 100644 --- a/Test/TestProject2/output/19f8024d10c828e8.deps.json +++ b/Test/TestProject2/output/19f8024d10c828e8.deps.json @@ -1 +1 @@ -{"hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "testcheck": "14d33679f7fadf1f", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "zlib.pyzlib": "1c46d554b3a3f9f3", "pyzlib": "1c46d554b3a3f9f3", "zlib.zdef": "213348433fb01cc6", "zdef": "213348433fb01cc6", "binascii": "257e074b935c33b4", "atom": "271ea3decb810db2", "zlib.zinflate": "451745df21e598af", "zinflate": "451745df21e598af", "memhub": "47775d5e50909338", "main": "541a1ed9b8be53c8", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "zlib.zchecksum": "8ebed83a7817fa0c", "zchecksum": "8ebed83a7817fa0c", "zlib.zdeflate": "90921d009fdd674c", "zdeflate": "90921d009fdd674c", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "hashlib.__init__": "96837bcc64032444", "__init__": "d63d2c2a2bd9bd2a", "hashlib": "96837bcc64032444", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "zlib.zhuff": "d541ade6afb689a5", "zhuff": "d541ade6afb689a5", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "zlib.__init__": "d63d2c2a2bd9bd2a", "zlib": "d63d2c2a2bd9bd2a"} \ No newline at end of file +{"hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "testcheck": "14d33679f7fadf1f", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "zlib.pyzlib": "1c46d554b3a3f9f3", "pyzlib": "1c46d554b3a3f9f3", "zlib.zdef": "213348433fb01cc6", "zdef": "213348433fb01cc6", "binascii": "257e074b935c33b4", "atom": "271ea3decb810db2", "zlib.zinflate": "451745df21e598af", "zinflate": "451745df21e598af", "main": "541a1ed9b8be53c8", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "zlib.zchecksum": "8ebed83a7817fa0c", "zchecksum": "8ebed83a7817fa0c", "zlib.zdeflate": "90921d009fdd674c", "zdeflate": "90921d009fdd674c", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "hashlib.__init__": "96837bcc64032444", "__init__": "d63d2c2a2bd9bd2a", "hashlib": "96837bcc64032444", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "zlib.zhuff": "d541ade6afb689a5", "zhuff": "d541ade6afb689a5", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "zlib.__init__": "d63d2c2a2bd9bd2a", "zlib": "d63d2c2a2bd9bd2a"} \ No newline at end of file diff --git a/Test/TestProject2/output/1c46d554b3a3f9f3.deps.json b/Test/TestProject2/output/1c46d554b3a3f9f3.deps.json index ed9483b..3843178 100644 --- a/Test/TestProject2/output/1c46d554b3a3f9f3.deps.json +++ b/Test/TestProject2/output/1c46d554b3a3f9f3.deps.json @@ -1 +1 @@ -{"hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "testcheck": "14d33679f7fadf1f", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "zlib.pyzlib": "1c46d554b3a3f9f3", "pyzlib": "1c46d554b3a3f9f3", "zlib.zdef": "213348433fb01cc6", "zdef": "213348433fb01cc6", "binascii": "257e074b935c33b4", "atom": "271ea3decb810db2", "zlib.zinflate": "451745df21e598af", "zinflate": "451745df21e598af", "memhub": "47775d5e50909338", "main": "541a1ed9b8be53c8", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "zlib.zchecksum": "8ebed83a7817fa0c", "zchecksum": "8ebed83a7817fa0c", "zlib.zdeflate": "90921d009fdd674c", "zdeflate": "90921d009fdd674c", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "hashlib.__init__": "96837bcc64032444", "__init__": "d63d2c2a2bd9bd2a", "hashlib": "96837bcc64032444", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "zlib.zhuff": "d541ade6afb689a5", "zhuff": "d541ade6afb689a5", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "zlib.__init__": "d63d2c2a2bd9bd2a", "zlib": "d63d2c2a2bd9bd2a"} \ No newline at end of file +{"hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "testcheck": "14d33679f7fadf1f", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "zlib.pyzlib": "1c46d554b3a3f9f3", "pyzlib": "1c46d554b3a3f9f3", "zlib.zdef": "213348433fb01cc6", "zdef": "213348433fb01cc6", "binascii": "257e074b935c33b4", "atom": "271ea3decb810db2", "zlib.zinflate": "451745df21e598af", "zinflate": "451745df21e598af", "main": "541a1ed9b8be53c8", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "zlib.zchecksum": "8ebed83a7817fa0c", "zchecksum": "8ebed83a7817fa0c", "zlib.zdeflate": "90921d009fdd674c", "zdeflate": "90921d009fdd674c", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "hashlib.__init__": "96837bcc64032444", "__init__": "d63d2c2a2bd9bd2a", "hashlib": "96837bcc64032444", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "zlib.zhuff": "d541ade6afb689a5", "zhuff": "d541ade6afb689a5", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "zlib.__init__": "d63d2c2a2bd9bd2a", "zlib": "d63d2c2a2bd9bd2a"} \ No newline at end of file diff --git a/Test/TestProject2/output/213348433fb01cc6.deps.json b/Test/TestProject2/output/213348433fb01cc6.deps.json index ed9483b..3843178 100644 --- a/Test/TestProject2/output/213348433fb01cc6.deps.json +++ b/Test/TestProject2/output/213348433fb01cc6.deps.json @@ -1 +1 @@ -{"hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "testcheck": "14d33679f7fadf1f", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "zlib.pyzlib": "1c46d554b3a3f9f3", "pyzlib": "1c46d554b3a3f9f3", "zlib.zdef": "213348433fb01cc6", "zdef": "213348433fb01cc6", "binascii": "257e074b935c33b4", "atom": "271ea3decb810db2", "zlib.zinflate": "451745df21e598af", "zinflate": "451745df21e598af", "memhub": "47775d5e50909338", "main": "541a1ed9b8be53c8", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "zlib.zchecksum": "8ebed83a7817fa0c", "zchecksum": "8ebed83a7817fa0c", "zlib.zdeflate": "90921d009fdd674c", "zdeflate": "90921d009fdd674c", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "hashlib.__init__": "96837bcc64032444", "__init__": "d63d2c2a2bd9bd2a", "hashlib": "96837bcc64032444", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "zlib.zhuff": "d541ade6afb689a5", "zhuff": "d541ade6afb689a5", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "zlib.__init__": "d63d2c2a2bd9bd2a", "zlib": "d63d2c2a2bd9bd2a"} \ No newline at end of file +{"hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "testcheck": "14d33679f7fadf1f", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "zlib.pyzlib": "1c46d554b3a3f9f3", "pyzlib": "1c46d554b3a3f9f3", "zlib.zdef": "213348433fb01cc6", "zdef": "213348433fb01cc6", "binascii": "257e074b935c33b4", "atom": "271ea3decb810db2", "zlib.zinflate": "451745df21e598af", "zinflate": "451745df21e598af", "main": "541a1ed9b8be53c8", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "zlib.zchecksum": "8ebed83a7817fa0c", "zchecksum": "8ebed83a7817fa0c", "zlib.zdeflate": "90921d009fdd674c", "zdeflate": "90921d009fdd674c", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "hashlib.__init__": "96837bcc64032444", "__init__": "d63d2c2a2bd9bd2a", "hashlib": "96837bcc64032444", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "zlib.zhuff": "d541ade6afb689a5", "zhuff": "d541ade6afb689a5", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "zlib.__init__": "d63d2c2a2bd9bd2a", "zlib": "d63d2c2a2bd9bd2a"} \ No newline at end of file diff --git a/Test/TestProject2/output/257e074b935c33b4.deps.json b/Test/TestProject2/output/257e074b935c33b4.deps.json index ed9483b..3843178 100644 --- a/Test/TestProject2/output/257e074b935c33b4.deps.json +++ b/Test/TestProject2/output/257e074b935c33b4.deps.json @@ -1 +1 @@ -{"hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "testcheck": "14d33679f7fadf1f", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "zlib.pyzlib": "1c46d554b3a3f9f3", "pyzlib": "1c46d554b3a3f9f3", "zlib.zdef": "213348433fb01cc6", "zdef": "213348433fb01cc6", "binascii": "257e074b935c33b4", "atom": "271ea3decb810db2", "zlib.zinflate": "451745df21e598af", "zinflate": "451745df21e598af", "memhub": "47775d5e50909338", "main": "541a1ed9b8be53c8", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "zlib.zchecksum": "8ebed83a7817fa0c", "zchecksum": "8ebed83a7817fa0c", "zlib.zdeflate": "90921d009fdd674c", "zdeflate": "90921d009fdd674c", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "hashlib.__init__": "96837bcc64032444", "__init__": "d63d2c2a2bd9bd2a", "hashlib": "96837bcc64032444", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "zlib.zhuff": "d541ade6afb689a5", "zhuff": "d541ade6afb689a5", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "zlib.__init__": "d63d2c2a2bd9bd2a", "zlib": "d63d2c2a2bd9bd2a"} \ No newline at end of file +{"hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "testcheck": "14d33679f7fadf1f", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "zlib.pyzlib": "1c46d554b3a3f9f3", "pyzlib": "1c46d554b3a3f9f3", "zlib.zdef": "213348433fb01cc6", "zdef": "213348433fb01cc6", "binascii": "257e074b935c33b4", "atom": "271ea3decb810db2", "zlib.zinflate": "451745df21e598af", "zinflate": "451745df21e598af", "main": "541a1ed9b8be53c8", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "zlib.zchecksum": "8ebed83a7817fa0c", "zchecksum": "8ebed83a7817fa0c", "zlib.zdeflate": "90921d009fdd674c", "zdeflate": "90921d009fdd674c", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "hashlib.__init__": "96837bcc64032444", "__init__": "d63d2c2a2bd9bd2a", "hashlib": "96837bcc64032444", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "zlib.zhuff": "d541ade6afb689a5", "zhuff": "d541ade6afb689a5", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "zlib.__init__": "d63d2c2a2bd9bd2a", "zlib": "d63d2c2a2bd9bd2a"} \ No newline at end of file diff --git a/Test/TestProject2/output/451745df21e598af.deps.json b/Test/TestProject2/output/451745df21e598af.deps.json index ed9483b..3843178 100644 --- a/Test/TestProject2/output/451745df21e598af.deps.json +++ b/Test/TestProject2/output/451745df21e598af.deps.json @@ -1 +1 @@ -{"hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "testcheck": "14d33679f7fadf1f", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "zlib.pyzlib": "1c46d554b3a3f9f3", "pyzlib": "1c46d554b3a3f9f3", "zlib.zdef": "213348433fb01cc6", "zdef": "213348433fb01cc6", "binascii": "257e074b935c33b4", "atom": "271ea3decb810db2", "zlib.zinflate": "451745df21e598af", "zinflate": "451745df21e598af", "memhub": "47775d5e50909338", "main": "541a1ed9b8be53c8", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "zlib.zchecksum": "8ebed83a7817fa0c", "zchecksum": "8ebed83a7817fa0c", "zlib.zdeflate": "90921d009fdd674c", "zdeflate": "90921d009fdd674c", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "hashlib.__init__": "96837bcc64032444", "__init__": "d63d2c2a2bd9bd2a", "hashlib": "96837bcc64032444", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "zlib.zhuff": "d541ade6afb689a5", "zhuff": "d541ade6afb689a5", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "zlib.__init__": "d63d2c2a2bd9bd2a", "zlib": "d63d2c2a2bd9bd2a"} \ No newline at end of file +{"hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "testcheck": "14d33679f7fadf1f", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "zlib.pyzlib": "1c46d554b3a3f9f3", "pyzlib": "1c46d554b3a3f9f3", "zlib.zdef": "213348433fb01cc6", "zdef": "213348433fb01cc6", "binascii": "257e074b935c33b4", "atom": "271ea3decb810db2", "zlib.zinflate": "451745df21e598af", "zinflate": "451745df21e598af", "main": "541a1ed9b8be53c8", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "zlib.zchecksum": "8ebed83a7817fa0c", "zchecksum": "8ebed83a7817fa0c", "zlib.zdeflate": "90921d009fdd674c", "zdeflate": "90921d009fdd674c", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "hashlib.__init__": "96837bcc64032444", "__init__": "d63d2c2a2bd9bd2a", "hashlib": "96837bcc64032444", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "zlib.zhuff": "d541ade6afb689a5", "zhuff": "d541ade6afb689a5", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "zlib.__init__": "d63d2c2a2bd9bd2a", "zlib": "d63d2c2a2bd9bd2a"} \ No newline at end of file diff --git a/Test/TestProject2/output/541a1ed9b8be53c8.deps.json b/Test/TestProject2/output/541a1ed9b8be53c8.deps.json index 752987e..e6f0680 100644 --- a/Test/TestProject2/output/541a1ed9b8be53c8.deps.json +++ b/Test/TestProject2/output/541a1ed9b8be53c8.deps.json @@ -1 +1 @@ -{"hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "testcheck": "14d33679f7fadf1f", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "zlib.pyzlib": "1c46d554b3a3f9f3", "pyzlib": "1c46d554b3a3f9f3", "zlib.zdef": "213348433fb01cc6", "zdef": "213348433fb01cc6", "binascii": "257e074b935c33b4", "atom": "271ea3decb810db2", "zlib.zinflate": "451745df21e598af", "zinflate": "451745df21e598af", "memhub": "47775d5e50909338", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "zlib.zchecksum": "8ebed83a7817fa0c", "zchecksum": "8ebed83a7817fa0c", "zlib.zdeflate": "90921d009fdd674c", "zdeflate": "90921d009fdd674c", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "hashlib.__init__": "96837bcc64032444", "__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "zlib.zhuff": "d541ade6afb689a5", "zhuff": "d541ade6afb689a5", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "testcheck": "14d33679f7fadf1f", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "zlib.pyzlib": "1c46d554b3a3f9f3", "pyzlib": "1c46d554b3a3f9f3", "zlib.zdef": "213348433fb01cc6", "zdef": "213348433fb01cc6", "binascii": "257e074b935c33b4", "atom": "271ea3decb810db2", "zlib.zinflate": "451745df21e598af", "zinflate": "451745df21e598af", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "zlib.zchecksum": "8ebed83a7817fa0c", "zchecksum": "8ebed83a7817fa0c", "zlib.zdeflate": "90921d009fdd674c", "zdeflate": "90921d009fdd674c", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "hashlib.__init__": "96837bcc64032444", "__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "zlib.zhuff": "d541ade6afb689a5", "zhuff": "d541ade6afb689a5", "stdint": "f5522571bcce7bcb"} \ No newline at end of file diff --git a/Test/TestProject2/output/6ff26590374ae6fc.deps.json b/Test/TestProject2/output/6ff26590374ae6fc.deps.json index ed9483b..3843178 100644 --- a/Test/TestProject2/output/6ff26590374ae6fc.deps.json +++ b/Test/TestProject2/output/6ff26590374ae6fc.deps.json @@ -1 +1 @@ -{"hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "testcheck": "14d33679f7fadf1f", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "zlib.pyzlib": "1c46d554b3a3f9f3", "pyzlib": "1c46d554b3a3f9f3", "zlib.zdef": "213348433fb01cc6", "zdef": "213348433fb01cc6", "binascii": "257e074b935c33b4", "atom": "271ea3decb810db2", "zlib.zinflate": "451745df21e598af", "zinflate": "451745df21e598af", "memhub": "47775d5e50909338", "main": "541a1ed9b8be53c8", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "zlib.zchecksum": "8ebed83a7817fa0c", "zchecksum": "8ebed83a7817fa0c", "zlib.zdeflate": "90921d009fdd674c", "zdeflate": "90921d009fdd674c", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "hashlib.__init__": "96837bcc64032444", "__init__": "d63d2c2a2bd9bd2a", "hashlib": "96837bcc64032444", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "zlib.zhuff": "d541ade6afb689a5", "zhuff": "d541ade6afb689a5", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "zlib.__init__": "d63d2c2a2bd9bd2a", "zlib": "d63d2c2a2bd9bd2a"} \ No newline at end of file +{"hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "testcheck": "14d33679f7fadf1f", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "zlib.pyzlib": "1c46d554b3a3f9f3", "pyzlib": "1c46d554b3a3f9f3", "zlib.zdef": "213348433fb01cc6", "zdef": "213348433fb01cc6", "binascii": "257e074b935c33b4", "atom": "271ea3decb810db2", "zlib.zinflate": "451745df21e598af", "zinflate": "451745df21e598af", "main": "541a1ed9b8be53c8", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "zlib.zchecksum": "8ebed83a7817fa0c", "zchecksum": "8ebed83a7817fa0c", "zlib.zdeflate": "90921d009fdd674c", "zdeflate": "90921d009fdd674c", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "hashlib.__init__": "96837bcc64032444", "__init__": "d63d2c2a2bd9bd2a", "hashlib": "96837bcc64032444", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "zlib.zhuff": "d541ade6afb689a5", "zhuff": "d541ade6afb689a5", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "zlib.__init__": "d63d2c2a2bd9bd2a", "zlib": "d63d2c2a2bd9bd2a"} \ No newline at end of file diff --git a/Test/TestProject2/output/8ebed83a7817fa0c.deps.json b/Test/TestProject2/output/8ebed83a7817fa0c.deps.json index ed9483b..3843178 100644 --- a/Test/TestProject2/output/8ebed83a7817fa0c.deps.json +++ b/Test/TestProject2/output/8ebed83a7817fa0c.deps.json @@ -1 +1 @@ -{"hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "testcheck": "14d33679f7fadf1f", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "zlib.pyzlib": "1c46d554b3a3f9f3", "pyzlib": "1c46d554b3a3f9f3", "zlib.zdef": "213348433fb01cc6", "zdef": "213348433fb01cc6", "binascii": "257e074b935c33b4", "atom": "271ea3decb810db2", "zlib.zinflate": "451745df21e598af", "zinflate": "451745df21e598af", "memhub": "47775d5e50909338", "main": "541a1ed9b8be53c8", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "zlib.zchecksum": "8ebed83a7817fa0c", "zchecksum": "8ebed83a7817fa0c", "zlib.zdeflate": "90921d009fdd674c", "zdeflate": "90921d009fdd674c", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "hashlib.__init__": "96837bcc64032444", "__init__": "d63d2c2a2bd9bd2a", "hashlib": "96837bcc64032444", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "zlib.zhuff": "d541ade6afb689a5", "zhuff": "d541ade6afb689a5", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "zlib.__init__": "d63d2c2a2bd9bd2a", "zlib": "d63d2c2a2bd9bd2a"} \ No newline at end of file +{"hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "testcheck": "14d33679f7fadf1f", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "zlib.pyzlib": "1c46d554b3a3f9f3", "pyzlib": "1c46d554b3a3f9f3", "zlib.zdef": "213348433fb01cc6", "zdef": "213348433fb01cc6", "binascii": "257e074b935c33b4", "atom": "271ea3decb810db2", "zlib.zinflate": "451745df21e598af", "zinflate": "451745df21e598af", "main": "541a1ed9b8be53c8", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "zlib.zchecksum": "8ebed83a7817fa0c", "zchecksum": "8ebed83a7817fa0c", "zlib.zdeflate": "90921d009fdd674c", "zdeflate": "90921d009fdd674c", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "hashlib.__init__": "96837bcc64032444", "__init__": "d63d2c2a2bd9bd2a", "hashlib": "96837bcc64032444", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "zlib.zhuff": "d541ade6afb689a5", "zhuff": "d541ade6afb689a5", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "zlib.__init__": "d63d2c2a2bd9bd2a", "zlib": "d63d2c2a2bd9bd2a"} \ No newline at end of file diff --git a/Test/TestProject2/output/90921d009fdd674c.deps.json b/Test/TestProject2/output/90921d009fdd674c.deps.json index ed9483b..3843178 100644 --- a/Test/TestProject2/output/90921d009fdd674c.deps.json +++ b/Test/TestProject2/output/90921d009fdd674c.deps.json @@ -1 +1 @@ -{"hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "testcheck": "14d33679f7fadf1f", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "zlib.pyzlib": "1c46d554b3a3f9f3", "pyzlib": "1c46d554b3a3f9f3", "zlib.zdef": "213348433fb01cc6", "zdef": "213348433fb01cc6", "binascii": "257e074b935c33b4", "atom": "271ea3decb810db2", "zlib.zinflate": "451745df21e598af", "zinflate": "451745df21e598af", "memhub": "47775d5e50909338", "main": "541a1ed9b8be53c8", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "zlib.zchecksum": "8ebed83a7817fa0c", "zchecksum": "8ebed83a7817fa0c", "zlib.zdeflate": "90921d009fdd674c", "zdeflate": "90921d009fdd674c", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "hashlib.__init__": "96837bcc64032444", "__init__": "d63d2c2a2bd9bd2a", "hashlib": "96837bcc64032444", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "zlib.zhuff": "d541ade6afb689a5", "zhuff": "d541ade6afb689a5", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "zlib.__init__": "d63d2c2a2bd9bd2a", "zlib": "d63d2c2a2bd9bd2a"} \ No newline at end of file +{"hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "testcheck": "14d33679f7fadf1f", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "zlib.pyzlib": "1c46d554b3a3f9f3", "pyzlib": "1c46d554b3a3f9f3", "zlib.zdef": "213348433fb01cc6", "zdef": "213348433fb01cc6", "binascii": "257e074b935c33b4", "atom": "271ea3decb810db2", "zlib.zinflate": "451745df21e598af", "zinflate": "451745df21e598af", "main": "541a1ed9b8be53c8", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "zlib.zchecksum": "8ebed83a7817fa0c", "zchecksum": "8ebed83a7817fa0c", "zlib.zdeflate": "90921d009fdd674c", "zdeflate": "90921d009fdd674c", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "hashlib.__init__": "96837bcc64032444", "__init__": "d63d2c2a2bd9bd2a", "hashlib": "96837bcc64032444", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "zlib.zhuff": "d541ade6afb689a5", "zhuff": "d541ade6afb689a5", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "zlib.__init__": "d63d2c2a2bd9bd2a", "zlib": "d63d2c2a2bd9bd2a"} \ No newline at end of file diff --git a/Test/TestProject2/output/_shared_sym_includes.pickle b/Test/TestProject2/output/_shared_sym_includes.pickle index 6cee9ce0843d34419d36a764c47af40bd5a57e43..f23426a874693b8921f8946cb76a174d6c8aed4e 100644 GIT binary patch delta 48747 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 delta 2595 zcmZuzZEO@(6y2HKmR?567ASN<3N@vrwQT2ecQ!4dkVS}m2o+I6%62}tJMHe0vXB_k zfT)2VB|^H*!PHurP56tjeRL)K^eht}t!uc{US!&Wax@xMOvO_8 z7$1`)b+pkKX`PCVvO~eMQ_$VGf;qaFiKC+*`{D_i+gv(N8eTkq-pOa1rX z@^IZbe-@ayiz_ngnsq;V82EtothP-sweI=Jz}Hi&+vZ}c$)_0CYOv^P zJ-cc62zvuvy%7L6^KT%-cy={R*`J<~8xNGN_SWj)^(AHQ^(EyNt^vQXHrMVbU$ouB zpS@Rp=zxdcuATPXMGqhQewsM!;qpwy^c-FbTz_sg8ft{+XZ#rT`PS`s9u_Vg?sy|i zs>HiSSGr*l$^Ov|4OOLc5gvMJpn9GYJ?ZlehDw8IlLl)^qthCQB>O;vR+4Sfp@C$z zBvhlE4s~SclnzTt_6HqWNH%299{HL95mI~HpgG(%V0~L@+u;pXdV`kHl2(7X-_rW} zvPRzNDy-1_QYq3*5SEv+|2Ie^tW3`8PbBhAH+_-6GHG2@TC^^Qm_E+O2HB`bUFobl6{cAMtw2#2fd$`W|yd-Gj+=l2nx zPaB+DI^pQ^KB%Xxz-^q3o=L-OveMQxETv?uNW(m|5C2hO`_tI%avJ86Zuir)?OdCo zjZ{~LrhPX9&7|)gDmx2`8;w!b~MoxrCA3oyp~$)>HU+swvf>GsmGxC}qQYcJ1s>WpZ}jkqT*{ zQUMB#03RgS_y|4-N?CV!1itBJW{&kt-}?`GrJQSSR24}xOx?7Nm@Y<*{6Ky%$g7s7 zh^nAQB~g}b6O%4m#l6VDaL06C@rTyW;+CPNIb73hDJDc!(@=CR5)<{9h}EdFm8+R$ z+oHhZj~ZK&6{Bd44$9oB%`ro>ctwu!nj%PsUVNmCwW_T|ELjv4+bBG8Feux)8k2e3 zRy1AU#e(x-P!X+&t_Y^aM+8+BZA`j5HgRDFo!HDZBdwF$(ry&KrVJ%!D7MaPYB5h0 zWSl4o8g4ZrDv>ENVu`$DC=tz)O$;%K&UJAu=(io%t2x2#nXLe z@Br84pM{N7-4ta>k6MZzE#&r}!MPVc;pVyGr<}x0+dAg+Ij@ePzRTQA7GKqIZVkJ2 K481YVb^Zq*&ESmy diff --git a/Test/TestProject2/output/c9d54a4158f7f5a8.deps.json b/Test/TestProject2/output/c9d54a4158f7f5a8.deps.json index ed9483b..3843178 100644 --- a/Test/TestProject2/output/c9d54a4158f7f5a8.deps.json +++ b/Test/TestProject2/output/c9d54a4158f7f5a8.deps.json @@ -1 +1 @@ -{"hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "testcheck": "14d33679f7fadf1f", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "zlib.pyzlib": "1c46d554b3a3f9f3", "pyzlib": "1c46d554b3a3f9f3", "zlib.zdef": "213348433fb01cc6", "zdef": "213348433fb01cc6", "binascii": "257e074b935c33b4", "atom": "271ea3decb810db2", "zlib.zinflate": "451745df21e598af", "zinflate": "451745df21e598af", "memhub": "47775d5e50909338", "main": "541a1ed9b8be53c8", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "zlib.zchecksum": "8ebed83a7817fa0c", "zchecksum": "8ebed83a7817fa0c", "zlib.zdeflate": "90921d009fdd674c", "zdeflate": "90921d009fdd674c", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "hashlib.__init__": "96837bcc64032444", "__init__": "d63d2c2a2bd9bd2a", "hashlib": "96837bcc64032444", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "zlib.zhuff": "d541ade6afb689a5", "zhuff": "d541ade6afb689a5", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "zlib.__init__": "d63d2c2a2bd9bd2a", "zlib": "d63d2c2a2bd9bd2a"} \ No newline at end of file +{"hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "testcheck": "14d33679f7fadf1f", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "zlib.pyzlib": "1c46d554b3a3f9f3", "pyzlib": "1c46d554b3a3f9f3", "zlib.zdef": "213348433fb01cc6", "zdef": "213348433fb01cc6", "binascii": "257e074b935c33b4", "atom": "271ea3decb810db2", "zlib.zinflate": "451745df21e598af", "zinflate": "451745df21e598af", "main": "541a1ed9b8be53c8", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "zlib.zchecksum": "8ebed83a7817fa0c", "zchecksum": "8ebed83a7817fa0c", "zlib.zdeflate": "90921d009fdd674c", "zdeflate": "90921d009fdd674c", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "hashlib.__init__": "96837bcc64032444", "__init__": "d63d2c2a2bd9bd2a", "hashlib": "96837bcc64032444", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "zlib.zhuff": "d541ade6afb689a5", "zhuff": "d541ade6afb689a5", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "zlib.__init__": "d63d2c2a2bd9bd2a", "zlib": "d63d2c2a2bd9bd2a"} \ No newline at end of file diff --git a/Test/TestProject2/output/cfc83b830141b00e.deps.json b/Test/TestProject2/output/cfc83b830141b00e.deps.json index dd13743..9321458 100644 --- a/Test/TestProject2/output/cfc83b830141b00e.deps.json +++ b/Test/TestProject2/output/cfc83b830141b00e.deps.json @@ -1 +1 @@ -{"hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "testcheck": "14d33679f7fadf1f", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "zlib.pyzlib": "1c46d554b3a3f9f3", "pyzlib": "1c46d554b3a3f9f3", "zlib.zdef": "213348433fb01cc6", "zdef": "213348433fb01cc6", "binascii": "257e074b935c33b4", "atom": "271ea3decb810db2", "zlib.zinflate": "451745df21e598af", "zinflate": "451745df21e598af", "memhub": "47775d5e50909338", "main": "541a1ed9b8be53c8", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "zlib.zchecksum": "8ebed83a7817fa0c", "zchecksum": "8ebed83a7817fa0c", "zlib.zdeflate": "90921d009fdd674c", "zdeflate": "90921d009fdd674c", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "hashlib.__init__": "96837bcc64032444", "__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "zlib.zhuff": "d541ade6afb689a5", "zhuff": "d541ade6afb689a5", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "testcheck": "14d33679f7fadf1f", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "zlib.pyzlib": "1c46d554b3a3f9f3", "pyzlib": "1c46d554b3a3f9f3", "zlib.zdef": "213348433fb01cc6", "zdef": "213348433fb01cc6", "binascii": "257e074b935c33b4", "atom": "271ea3decb810db2", "zlib.zinflate": "451745df21e598af", "zinflate": "451745df21e598af", "main": "541a1ed9b8be53c8", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "zlib.zchecksum": "8ebed83a7817fa0c", "zchecksum": "8ebed83a7817fa0c", "zlib.zdeflate": "90921d009fdd674c", "zdeflate": "90921d009fdd674c", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "hashlib.__init__": "96837bcc64032444", "__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "zlib.zhuff": "d541ade6afb689a5", "zhuff": "d541ade6afb689a5", "stdint": "f5522571bcce7bcb"} \ No newline at end of file diff --git a/Test/TestProject2/output/d541ade6afb689a5.deps.json b/Test/TestProject2/output/d541ade6afb689a5.deps.json index ed9483b..3843178 100644 --- a/Test/TestProject2/output/d541ade6afb689a5.deps.json +++ b/Test/TestProject2/output/d541ade6afb689a5.deps.json @@ -1 +1 @@ -{"hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "testcheck": "14d33679f7fadf1f", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "zlib.pyzlib": "1c46d554b3a3f9f3", "pyzlib": "1c46d554b3a3f9f3", "zlib.zdef": "213348433fb01cc6", "zdef": "213348433fb01cc6", "binascii": "257e074b935c33b4", "atom": "271ea3decb810db2", "zlib.zinflate": "451745df21e598af", "zinflate": "451745df21e598af", "memhub": "47775d5e50909338", "main": "541a1ed9b8be53c8", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "zlib.zchecksum": "8ebed83a7817fa0c", "zchecksum": "8ebed83a7817fa0c", "zlib.zdeflate": "90921d009fdd674c", "zdeflate": "90921d009fdd674c", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "hashlib.__init__": "96837bcc64032444", "__init__": "d63d2c2a2bd9bd2a", "hashlib": "96837bcc64032444", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "zlib.zhuff": "d541ade6afb689a5", "zhuff": "d541ade6afb689a5", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "zlib.__init__": "d63d2c2a2bd9bd2a", "zlib": "d63d2c2a2bd9bd2a"} \ No newline at end of file +{"hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "testcheck": "14d33679f7fadf1f", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "zlib.pyzlib": "1c46d554b3a3f9f3", "pyzlib": "1c46d554b3a3f9f3", "zlib.zdef": "213348433fb01cc6", "zdef": "213348433fb01cc6", "binascii": "257e074b935c33b4", "atom": "271ea3decb810db2", "zlib.zinflate": "451745df21e598af", "zinflate": "451745df21e598af", "main": "541a1ed9b8be53c8", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "zlib.zchecksum": "8ebed83a7817fa0c", "zchecksum": "8ebed83a7817fa0c", "zlib.zdeflate": "90921d009fdd674c", "zdeflate": "90921d009fdd674c", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "hashlib.__init__": "96837bcc64032444", "__init__": "d63d2c2a2bd9bd2a", "hashlib": "96837bcc64032444", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "zlib.zhuff": "d541ade6afb689a5", "zhuff": "d541ade6afb689a5", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "zlib.__init__": "d63d2c2a2bd9bd2a", "zlib": "d63d2c2a2bd9bd2a"} \ No newline at end of file diff --git a/Test/TestProject2/temp/47775d5e50909338.pyi b/Test/TestProject2/temp/754640ce30cfebcc.pyi similarity index 100% rename from Test/TestProject2/temp/47775d5e50909338.pyi rename to Test/TestProject2/temp/754640ce30cfebcc.pyi diff --git a/Test/TestProject2/temp/_phase1_manifest.json b/Test/TestProject2/temp/_phase1_manifest.json index 43b6417..796dd00 100644 --- a/Test/TestProject2/temp/_phase1_manifest.json +++ b/Test/TestProject2/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject2\\App\\main.py": {"sha1": "541a1ed9b8be53c8", "mtime": 1782266206.092594, "size": 881}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject2\\App\\zc\\config.py": {"sha1": "cfc83b830141b00e", "mtime": 1778402243.1661563, "size": 531}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\binascii.py": {"sha1": "257e074b935c33b4", "mtime": 1782266199.8074288, "size": 14937}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__init__.py": {"sha1": "96837bcc64032444", "mtime": 1777902641.540433, "size": 186}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__md5.py": {"sha1": "19f8024d10c828e8", "mtime": 1784356818.7075372, "size": 5847}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__sha1.py": {"sha1": "0df65b8ed15664b0", "mtime": 1784356827.656474, "size": 4516}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__sha256.py": {"sha1": "c9d54a4158f7f5a8", "mtime": 1782266203.9352357, "size": 5332}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__sha512.py": {"sha1": "6ff26590374ae6fc", "mtime": 1782266223.3380039, "size": 7162}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "47775d5e50909338", "mtime": 1784464283.860502, "size": 19750}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784464295.903657, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784387475.6951904, "size": 10395}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784375629.8057406, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\zlib\\pyzlib.py": {"sha1": "1c46d554b3a3f9f3", "mtime": 1783538216.7783763, "size": 26101}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\zlib\\zchecksum.py": {"sha1": "8ebed83a7817fa0c", "mtime": 1782266235.9510274, "size": 4067}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\zlib\\zdef.py": {"sha1": "213348433fb01cc6", "mtime": 1782827035.812386, "size": 8591}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\zlib\\zdeflate.py": {"sha1": "90921d009fdd674c", "mtime": 1783538197.82992, "size": 19061}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\zlib\\zhuff.py": {"sha1": "d541ade6afb689a5", "mtime": 1782827037.897873, "size": 13495}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\zlib\\zinflate.py": {"sha1": "451745df21e598af", "mtime": 1782827035.992862, "size": 18078}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject2\\App\\main.py": {"sha1": "541a1ed9b8be53c8", "mtime": 1782266206.092594, "size": 881}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject2\\App\\zc\\config.py": {"sha1": "cfc83b830141b00e", "mtime": 1778402243.1661563, "size": 531}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\binascii.py": {"sha1": "257e074b935c33b4", "mtime": 1782266199.8074288, "size": 14937}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__init__.py": {"sha1": "96837bcc64032444", "mtime": 1777902641.540433, "size": 186}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__md5.py": {"sha1": "19f8024d10c828e8", "mtime": 1784356818.7075372, "size": 5847}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__sha1.py": {"sha1": "0df65b8ed15664b0", "mtime": 1784356827.656474, "size": 4516}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__sha256.py": {"sha1": "c9d54a4158f7f5a8", "mtime": 1782266203.9352357, "size": 5332}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__sha512.py": {"sha1": "6ff26590374ae6fc", "mtime": 1782266223.3380039, "size": 7162}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "754640ce30cfebcc", "mtime": 1784566611.8434613, "size": 20300}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784566611.8280091, "size": 10395}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\zlib\\pyzlib.py": {"sha1": "1c46d554b3a3f9f3", "mtime": 1783538216.7783763, "size": 26101}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\zlib\\zchecksum.py": {"sha1": "8ebed83a7817fa0c", "mtime": 1782266235.9510274, "size": 4067}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\zlib\\zdef.py": {"sha1": "213348433fb01cc6", "mtime": 1782827035.812386, "size": 8591}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\zlib\\zdeflate.py": {"sha1": "90921d009fdd674c", "mtime": 1783538197.82992, "size": 19061}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\zlib\\zhuff.py": {"sha1": "d541ade6afb689a5", "mtime": 1782827037.897873, "size": 13495}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\zlib\\zinflate.py": {"sha1": "451745df21e598af", "mtime": 1782827035.992862, "size": 18078}} \ No newline at end of file diff --git a/Test/TestProject2/temp/_sha1_map.txt b/Test/TestProject2/temp/_sha1_map.txt index f3411f4..cd5cdc4 100644 --- a/Test/TestProject2/temp/_sha1_map.txt +++ b/Test/TestProject2/temp/_sha1_map.txt @@ -6,10 +6,10 @@ 257e074b935c33b4:includes/binascii.py 271ea3decb810db2:includes/atom.py 451745df21e598af:includes/zlib\zinflate.py -47775d5e50909338:includes/memhub.py 541a1ed9b8be53c8:main.py 6f62fe05c5ea1ceb:includes/stdio.py 6ff26590374ae6fc:includes/hashlib\__sha512.py +754640ce30cfebcc:includes/memhub.py 7e529fe7a078cfef:includes/w32\win32base.py 8ebed83a7817fa0c:includes/zlib\zchecksum.py 90921d009fdd674c:includes/zlib\zdeflate.py diff --git a/Test/TestProject2/temp/_shared_sym.json b/Test/TestProject2/temp/_shared_sym.json index 8a338b0399dd783e5b965bf55f7a40649efa93be..a04912dbd0693816f617f8a43ed542dd7cdb978b 100644 GIT binary patch delta 48556 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 delta 2303 zcmZuxZD?Cn7|u=d?l5p$*N?2}R@Z3Pt=XF1dvm{PI@iwP2DVc>b+cIF&HYGo()Q#M!%8;v`HpiEaSw8|jNpwNQrP#EacpZcR?q63*A+aE;)Z`wPMob%`2hvz)+ zbDsC`o^#{O&gDxxuKeX?24({t?d4Xu<5`2f<^GMUJD7oTpySKlH6~Ig$g(Wzq9L+9 zY)?3>ly_?%bg!?K-LrLz>#%a<0CSu59|+q?Tz>y{)<)bxgk8<1$#IB zD7#!wow9CMe|?qLyWqY;927oj!cLO?%!H1uwTBv-eR{fSn|1Ofm#gTnUBp}CaF{H? zY#bW#8*ykQH(7{7H_84UhYpf$8v}`C%`whk|Aff|MC-OG7h`rNK|;JC~+S&`KJfB(?i9upJ8-*hMZSGB7~0OBvWliE}dpe%vqt z0kUFX0w{O1I01)9?JrdA-bv^qwI?R2NoFSPBtJ}2UVw{P5QsZo9o2&cU4PA9Z3;lt zp7msDv}A=xTrRcftDS6oIt%TT{x8_o_}eTrkU9U%!XC2XVh*<9KKny1;r^U$Hk|_> zY4%Z$c8gbYw0U|sPt%U%AxQd`sO)!nXeYJq0?qgF0)!~NJX?Skj0?10mgp7V+Z7ex z6dVmHoG!4M5Yx3DK@vDk48@InR8Pbc`KXpDr1K@~t*HGfHP`C!rOVLC)v}?f+(b5! z&YLCcY_-f^E5QF;2DXl1BXjmEP|Kbv&OxO(x8d4|d#vv2GicU}2OmPg-HI4iH9e-A zT2G9ZwbFE{SjQ@cD)I`a$YEX(Ox-3cfBVoY3~p;dotSMyzIshpWR_E6Drd-2tXhX> zMAVGmd<-4Hssf&tdNVg34CoR(5@bWCkr{TrO)dgSBhuhTHykub@Nj Lg$#am1r7fP$~b+V diff --git a/Test/TestProject3/output/0019c939aae7f9f1.deps.json b/Test/TestProject3/output/0019c939aae7f9f1.deps.json index 37f5f37..7822c4b 100644 --- a/Test/TestProject3/output/0019c939aae7f9f1.deps.json +++ b/Test/TestProject3/output/0019c939aae7f9f1.deps.json @@ -1 +1 @@ -{"w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "testcheck": "14d33679f7fadf1f", "enumtest": "1b58766d38d05de3", "viperlib": "1d40c4bdc94641c5", "atom": "271ea3decb810db2", "vector": "285a822aa26bfbda", "memhub": "47775d5e50909338", "definetest": "64ac83614c9bdbc6", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "string": "9474791561654346", "main": "b235d6477436c524", "vectortest": "b777c587cc21465a", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "fileiotest": "c01b27dbcd683245", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0"} \ No newline at end of file +{"w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "testcheck": "14d33679f7fadf1f", "enumtest": "1b58766d38d05de3", "atom": "271ea3decb810db2", "vector": "285a822aa26bfbda", "definetest": "64ac83614c9bdbc6", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "string": "9474791561654346", "main": "b235d6477436c524", "vectortest": "b777c587cc21465a", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "fileiotest": "c01b27dbcd683245", "viperlib": "c3b259b4059f8668", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0"} \ No newline at end of file diff --git a/Test/TestProject3/output/1b58766d38d05de3.deps.json b/Test/TestProject3/output/1b58766d38d05de3.deps.json index 8320023..54b02fc 100644 --- a/Test/TestProject3/output/1b58766d38d05de3.deps.json +++ b/Test/TestProject3/output/1b58766d38d05de3.deps.json @@ -1 +1 @@ -{"mpooltest": "0019c939aae7f9f1", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "testcheck": "14d33679f7fadf1f", "viperlib": "1d40c4bdc94641c5", "atom": "271ea3decb810db2", "vector": "285a822aa26bfbda", "memhub": "47775d5e50909338", "definetest": "64ac83614c9bdbc6", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "string": "9474791561654346", "main": "b235d6477436c524", "vectortest": "b777c587cc21465a", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "fileiotest": "c01b27dbcd683245", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0"} \ No newline at end of file +{"mpooltest": "0019c939aae7f9f1", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "vector": "285a822aa26bfbda", "definetest": "64ac83614c9bdbc6", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "string": "9474791561654346", "main": "b235d6477436c524", "vectortest": "b777c587cc21465a", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "fileiotest": "c01b27dbcd683245", "viperlib": "c3b259b4059f8668", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0"} \ No newline at end of file diff --git a/Test/TestProject3/output/285a822aa26bfbda.deps.json b/Test/TestProject3/output/285a822aa26bfbda.deps.json index 08e8278..44f0cf2 100644 --- a/Test/TestProject3/output/285a822aa26bfbda.deps.json +++ b/Test/TestProject3/output/285a822aa26bfbda.deps.json @@ -1 +1 @@ -{"mpooltest": "0019c939aae7f9f1", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "testcheck": "14d33679f7fadf1f", "enumtest": "1b58766d38d05de3", "viperlib": "1d40c4bdc94641c5", "atom": "271ea3decb810db2", "vector": "285a822aa26bfbda", "memhub": "47775d5e50909338", "definetest": "64ac83614c9bdbc6", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "string": "9474791561654346", "main": "b235d6477436c524", "vectortest": "b777c587cc21465a", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "fileiotest": "c01b27dbcd683245", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"mpooltest": "0019c939aae7f9f1", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "testcheck": "14d33679f7fadf1f", "enumtest": "1b58766d38d05de3", "atom": "271ea3decb810db2", "vector": "285a822aa26bfbda", "definetest": "64ac83614c9bdbc6", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "string": "9474791561654346", "main": "b235d6477436c524", "vectortest": "b777c587cc21465a", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "fileiotest": "c01b27dbcd683245", "viperlib": "c3b259b4059f8668", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/TestProject3/output/64ac83614c9bdbc6.deps.json b/Test/TestProject3/output/64ac83614c9bdbc6.deps.json index de74b3e..349e1bc 100644 --- a/Test/TestProject3/output/64ac83614c9bdbc6.deps.json +++ b/Test/TestProject3/output/64ac83614c9bdbc6.deps.json @@ -1 +1 @@ -{"mpooltest": "0019c939aae7f9f1", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "testcheck": "14d33679f7fadf1f", "enumtest": "1b58766d38d05de3", "viperlib": "1d40c4bdc94641c5", "atom": "271ea3decb810db2", "vector": "285a822aa26bfbda", "memhub": "47775d5e50909338", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "string": "9474791561654346", "main": "b235d6477436c524", "vectortest": "b777c587cc21465a", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "fileiotest": "c01b27dbcd683245", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0"} \ No newline at end of file +{"mpooltest": "0019c939aae7f9f1", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "testcheck": "14d33679f7fadf1f", "enumtest": "1b58766d38d05de3", "atom": "271ea3decb810db2", "vector": "285a822aa26bfbda", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "string": "9474791561654346", "main": "b235d6477436c524", "vectortest": "b777c587cc21465a", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "fileiotest": "c01b27dbcd683245", "viperlib": "c3b259b4059f8668", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0"} \ No newline at end of file diff --git a/Test/TestProject3/output/b235d6477436c524.deps.json b/Test/TestProject3/output/b235d6477436c524.deps.json index 8cb1339..623ded0 100644 --- a/Test/TestProject3/output/b235d6477436c524.deps.json +++ b/Test/TestProject3/output/b235d6477436c524.deps.json @@ -1 +1 @@ -{"mpooltest": "0019c939aae7f9f1", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "testcheck": "14d33679f7fadf1f", "enumtest": "1b58766d38d05de3", "viperlib": "1d40c4bdc94641c5", "atom": "271ea3decb810db2", "vector": "285a822aa26bfbda", "memhub": "47775d5e50909338", "definetest": "64ac83614c9bdbc6", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "string": "9474791561654346", "vectortest": "b777c587cc21465a", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "fileiotest": "c01b27dbcd683245", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0"} \ No newline at end of file +{"mpooltest": "0019c939aae7f9f1", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "testcheck": "14d33679f7fadf1f", "enumtest": "1b58766d38d05de3", "atom": "271ea3decb810db2", "vector": "285a822aa26bfbda", "definetest": "64ac83614c9bdbc6", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "string": "9474791561654346", "vectortest": "b777c587cc21465a", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "fileiotest": "c01b27dbcd683245", "viperlib": "c3b259b4059f8668", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0"} \ No newline at end of file diff --git a/Test/TestProject3/output/b777c587cc21465a.deps.json b/Test/TestProject3/output/b777c587cc21465a.deps.json index 8a8e5f4..738d8ec 100644 --- a/Test/TestProject3/output/b777c587cc21465a.deps.json +++ b/Test/TestProject3/output/b777c587cc21465a.deps.json @@ -1 +1 @@ -{"mpooltest": "0019c939aae7f9f1", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "testcheck": "14d33679f7fadf1f", "enumtest": "1b58766d38d05de3", "viperlib": "1d40c4bdc94641c5", "atom": "271ea3decb810db2", "vector": "285a822aa26bfbda", "memhub": "47775d5e50909338", "definetest": "64ac83614c9bdbc6", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "string": "9474791561654346", "main": "b235d6477436c524", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "fileiotest": "c01b27dbcd683245", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0"} \ No newline at end of file +{"mpooltest": "0019c939aae7f9f1", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "testcheck": "14d33679f7fadf1f", "enumtest": "1b58766d38d05de3", "atom": "271ea3decb810db2", "vector": "285a822aa26bfbda", "definetest": "64ac83614c9bdbc6", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "string": "9474791561654346", "main": "b235d6477436c524", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "fileiotest": "c01b27dbcd683245", "viperlib": "c3b259b4059f8668", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0"} \ No newline at end of file diff --git a/Test/TestProject3/output/c01b27dbcd683245.deps.json b/Test/TestProject3/output/c01b27dbcd683245.deps.json index 173b229..c5559b1 100644 --- a/Test/TestProject3/output/c01b27dbcd683245.deps.json +++ b/Test/TestProject3/output/c01b27dbcd683245.deps.json @@ -1 +1 @@ -{"mpooltest": "0019c939aae7f9f1", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "testcheck": "14d33679f7fadf1f", "enumtest": "1b58766d38d05de3", "viperlib": "1d40c4bdc94641c5", "atom": "271ea3decb810db2", "vector": "285a822aa26bfbda", "memhub": "47775d5e50909338", "definetest": "64ac83614c9bdbc6", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "string": "9474791561654346", "main": "b235d6477436c524", "vectortest": "b777c587cc21465a", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0"} \ No newline at end of file +{"mpooltest": "0019c939aae7f9f1", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "testcheck": "14d33679f7fadf1f", "enumtest": "1b58766d38d05de3", "atom": "271ea3decb810db2", "vector": "285a822aa26bfbda", "definetest": "64ac83614c9bdbc6", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "string": "9474791561654346", "main": "b235d6477436c524", "vectortest": "b777c587cc21465a", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0"} \ No newline at end of file diff --git a/Test/TestProject3/temp/1d40c4bdc94641c5.pyi b/Test/TestProject3/temp/1d40c4bdc94641c5.pyi deleted file mode 100644 index 597cc07..0000000 --- a/Test/TestProject3/temp/1d40c4bdc94641c5.pyi +++ /dev/null @@ -1,24 +0,0 @@ -""" -Auto-generated Python stub file from viperlib.py -Module: viperlib -""" - - -import t, c -import viperio -import stdio -from stdarg import arg, va_arg - -TEMP_BUF_SIZE: t.CDefine = 68 - -def get_digit_count(num: t.CUnsignedInt, base: t.CInt) -> t.CStatic | t.CInt: pass - -def sprintf(buf: t.CChar | t.CPtr, rule: str, *args) -> t.CVoid | t.CExport: pass - -def vsprintf(buf: t.CChar | t.CPtr, rule: str, *args) -> t.CInt: pass - -def snprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, *args) -> t.CInt | t.CExport: pass - -def _check_special_float(fv: t.CDouble) -> t.CInt: pass - -def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.CPtr) -> t.CInt | t.CExport: pass diff --git a/Test/TestProject3/temp/47775d5e50909338.pyi b/Test/TestProject3/temp/754640ce30cfebcc.pyi similarity index 100% rename from Test/TestProject3/temp/47775d5e50909338.pyi rename to Test/TestProject3/temp/754640ce30cfebcc.pyi diff --git a/Test/TestProject3/temp/_phase1_manifest.json b/Test/TestProject3/temp/_phase1_manifest.json index 1302d31..22fedac 100644 --- a/Test/TestProject3/temp/_phase1_manifest.json +++ b/Test/TestProject3/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject3\\App\\definetest.py": {"sha1": "64ac83614c9bdbc6", "mtime": 1781005527.138675, "size": 9399}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject3\\App\\enumtest.py": {"sha1": "1b58766d38d05de3", "mtime": 1781025043.7585423, "size": 2094}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject3\\App\\fileiotest.py": {"sha1": "c01b27dbcd683245", "mtime": 1781261000.2857711, "size": 12600}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject3\\App\\main.py": {"sha1": "b235d6477436c524", "mtime": 1782110387.1454024, "size": 15478}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject3\\App\\mpooltest.py": {"sha1": "0019c939aae7f9f1", "mtime": 1782828388.8033123, "size": 2789}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject3\\App\\vectortest.py": {"sha1": "b777c587cc21465a", "mtime": 1782828416.8050296, "size": 1215}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "47775d5e50909338", "mtime": 1784464283.860502, "size": 19750}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\platmacro.py": {"sha1": "93c1d18e35d188d6", "mtime": 1781237231.03366, "size": 1422}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.py": {"sha1": "71e0a3ffcb3ebfad", "mtime": 1781258888.113146, "size": 277}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784464295.903657, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784387475.6951904, "size": 10395}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784375629.8057406, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\vector.py": {"sha1": "285a822aa26bfbda", "mtime": 1784375432.2854693, "size": 2071}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.py": {"sha1": "1d40c4bdc94641c5", "mtime": 1784470563.362105, "size": 56865}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\fileio.py": {"sha1": "0035c95a18d4f8e8", "mtime": 1783747022.686592, "size": 14147}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32file.py": {"sha1": "f6b51804a0ba8ff0", "mtime": 1782531158.744144, "size": 8424}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject3\\App\\definetest.py": {"sha1": "64ac83614c9bdbc6", "mtime": 1781005527.138675, "size": 9399}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject3\\App\\enumtest.py": {"sha1": "1b58766d38d05de3", "mtime": 1781025043.7585423, "size": 2094}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject3\\App\\fileiotest.py": {"sha1": "c01b27dbcd683245", "mtime": 1781261000.2857711, "size": 12600}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject3\\App\\main.py": {"sha1": "b235d6477436c524", "mtime": 1782110387.1454024, "size": 15478}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject3\\App\\mpooltest.py": {"sha1": "0019c939aae7f9f1", "mtime": 1782828388.8033123, "size": 2789}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject3\\App\\vectortest.py": {"sha1": "b777c587cc21465a", "mtime": 1782828416.8050296, "size": 1215}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "754640ce30cfebcc", "mtime": 1784566611.8434613, "size": 20300}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\platmacro.py": {"sha1": "93c1d18e35d188d6", "mtime": 1781237231.03366, "size": 1422}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.py": {"sha1": "71e0a3ffcb3ebfad", "mtime": 1781258888.113146, "size": 277}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784566611.8280091, "size": 10395}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\vector.py": {"sha1": "285a822aa26bfbda", "mtime": 1784566611.8311827, "size": 2071}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.py": {"sha1": "c3b259b4059f8668", "mtime": 1784566611.8459883, "size": 56772}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\fileio.py": {"sha1": "0035c95a18d4f8e8", "mtime": 1783747022.686592, "size": 14147}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32file.py": {"sha1": "f6b51804a0ba8ff0", "mtime": 1782531158.744144, "size": 8424}} \ No newline at end of file diff --git a/Test/TestProject3/temp/_sha1_map.txt b/Test/TestProject3/temp/_sha1_map.txt index 27e4984..0b4b7ba 100644 --- a/Test/TestProject3/temp/_sha1_map.txt +++ b/Test/TestProject3/temp/_sha1_map.txt @@ -2,13 +2,12 @@ 0035c95a18d4f8e8:includes/w32\fileio.py 14d33679f7fadf1f:includes/testcheck.py 1b58766d38d05de3:enumtest.py -1d40c4bdc94641c5:includes/viperlib.py 271ea3decb810db2:includes/atom.py 285a822aa26bfbda:includes/vector.py -47775d5e50909338:includes/memhub.py 64ac83614c9bdbc6:definetest.py 6f62fe05c5ea1ceb:includes/stdio.py 71e0a3ffcb3ebfad:includes/stdarg.py +754640ce30cfebcc:includes/memhub.py 7e529fe7a078cfef:includes/w32\win32base.py 90c53dd6db8d41cf:includes/stdlib.py 93c1d18e35d188d6:includes/platmacro.py @@ -17,6 +16,7 @@ b235d6477436c524:main.py b777c587cc21465a:vectortest.py bbdf3bbd4c3bc28c:includes/w32\win32console.py c01b27dbcd683245:fileiotest.py +c3b259b4059f8668:includes/viperlib.py c9f4be41ca1cc2b4:includes/viperio.py f5522571bcce7bcb:includes/stdint.py f6b51804a0ba8ff0:includes/w32\win32file.py diff --git a/Test/TestProject3/temp/_shared_sym.json b/Test/TestProject3/temp/_shared_sym.json index cf173d29f058fc39753a8e195628a1dcbc593c09..7cb84198dcb3efe432a6a28deb3d4be6506e1c16 100644 GIT binary patch delta 54967 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 delta 8775 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�nEF0|X>ocys9MZsgX$9$bz1dL}9&T86t*3(&i zX?%O1_mT1K?IeGVZ!hbl3GJzKCbSo!sa@Z@6Id_j5w6W<0b!cibBuFl+nTp7f2WVj zl+7ZX8}rg^*wNn3X8z7Y{yLk*I;*}DnbuhyJFy*KY1KrQ=0>Wdi$+ES`{5z|l+Oax zjtVVgnJW39!Jj;gMa*9+E@3aK>9jz8dr*K(#MOL@O?)|2ev=5iKC&hdtFHk7FN zcjYXWxN+CHY#Dij*Ux2r$Vq-|E=!>Iy7J%Wf@^0URlyR;0G?C9dJ{8WTEX-X?Pvvy zhiDHf;21l{dsVW2^hq~vt%Md4oL7QzH2=I3T#MIMu>@k{x+cRo@LH-b3tCgoav_G@}fC5 zv1bunVgj7}W|x!|6wQILOu%UCxONHit8wz0+w9f{!vs1x%r0`onS^ohYMEoJqt>}L zV_l?^_jFUf#WZvJ>=KKqz&LBVbyl$vGVBYX<=Y?sa0v@?x&caemaxJYxKK^m%gW$! zYA>6w#+w#D-Uutn*vPWrn$^_E<_h);nAGpIe-=U7|Azy~h!fBeiz7Q+Xt1>Xa! zge<)p@8*2Pb>>fJMer+&gg}1uI=t{I$&e_(|20|8PZ@+;WD`G>1dqM^wPbi4m+JZn zj|iktR40t!-3JPS^i7J;k$~UnR|SIvN^~j4;3cS;}N`MsNm1NhY9%lW^D8Wk_F-n*z+r3l4zG1ZB#lIab zn9&K82q`yJc#cBn#xX({ek@(s3fVzLo7W4k^NtQVB=m8uD~n3QVrADwOa6U z4=m3WGjJh5fUDKuhAMxhT9^nU1-F~}k*{1WsKHHMiyUR?>>6P*I>OuO!t=7hXRJ-|r1)mm z3M=q=_a8!toPO8_!C#78FZ|a7cS4*QN%w{@brApG9idlrl0Ly`GUuADrsUjsgUR-S ztR=qJ-8yAm#@oha^110Yy*Fl7vl3jc89{pU$r~RU#?agAD^H%SS^+$t2q&aNn=FU992gMl$2|Z*Cpf{Ec#pnw$-h19pYz!NrWc3 xW}`J(XN<$qOPcMj2I7%j4Xfj0*wV#`)qLa**N-VYy?45fpxM>@`JJv~{~v9wZ~y=R diff --git a/Test/TestProject3/temp/c3b259b4059f8668.pyi b/Test/TestProject3/temp/c3b259b4059f8668.pyi new file mode 100644 index 0000000..67ff4ce --- /dev/null +++ b/Test/TestProject3/temp/c3b259b4059f8668.pyi @@ -0,0 +1,23 @@ +""" +Auto-generated Python stub file from viperlib.py +Module: viperlib +""" + + +import t, c +import viperio +from stdarg import arg, va_arg + +TEMP_BUF_SIZE: t.CDefine = 68 + +def get_digit_count(num: t.CUnsignedInt, base: t.CInt) -> t.CStatic | t.CInt: pass + +def sprintf(buf: t.CChar | t.CPtr, rule: str, *args) -> t.CVoid | t.CExport: pass + +def vsprintf(buf: t.CChar | t.CPtr, rule: str, *args) -> t.CInt: pass + +def snprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, *args) -> t.CInt | t.CExport: pass + +def _check_special_float(fv: t.CDouble) -> t.CInt: pass + +def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.CPtr) -> t.CInt | t.CExport: pass diff --git a/Test/TypeCastTest/temp/_phase1_manifest.json b/Test/TypeCastTest/temp/_phase1_manifest.json index d71d49a..c289c49 100644 --- a/Test/TypeCastTest/temp/_phase1_manifest.json +++ b/Test/TypeCastTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TypeCastTest\\App\\main.py": {"sha1": "78418cf2ee722f0f", "mtime": 1782109471.5646322, "size": 6566}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784387475.6951904, "size": 10395}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784375629.8057406, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32memory.py": {"sha1": "72e2d5ccb7cedcf1", "mtime": 1781200703.5389092, "size": 3142}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TypeCastTest\\App\\main.py": {"sha1": "78418cf2ee722f0f", "mtime": 1782109471.5646322, "size": 6566}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784566611.8280091, "size": 10395}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32memory.py": {"sha1": "72e2d5ccb7cedcf1", "mtime": 1781200703.5389092, "size": 3142}} \ No newline at end of file diff --git a/Test/VRandomTest/output/_shared_sym_includes.pickle b/Test/VRandomTest/output/_shared_sym_includes.pickle index fbac0a9b14e5a6e85ea2e5be135430d5a6606c49..b1684786558a7ea2fa2081bb09e26b82fdaf21d8 100644 GIT binary patch delta 48337 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 delta 2062 zcmZvde{2(F7{{-D_Fft?v1?iB+{zr8LI-qr*Sq$rF=H~b;3Tq2Bx1g`L9Nap-`+bN?KYa8tFVJ)8g)PC9VD5h4tC3E3(`*^9g__hJ#uRG;%III{-ToEEd zBp6hwBMZAQeIW}frXOd)hw0TUyol+h8IUl2bq2aIotS~`m@dsg2vhegOFJ+NJF#|r z7J`^A&a!-+b0A{v;2gY!>9=#xis>!Op{ahp0easOH?`DrI(P@%^tE|tW279KhbQRd zJaph9KhHw|)5mkL2U9HvVN9oTtf8#rSjWJ>0DG~+sRfpAae?LAm}mL!%|kb%@1Z<+ z>DfGN#WjD;Ll>rx6CBI~?eFT%4} z>sVynrTvT0kG0=0wGS3yH`ex)U?-!^!4kC4i4wHqjHWU)(?6^wM%wKX_~_GRXu@gz zW$488y)yVQ{h`ddo-1Y6wcoMC8sadMo?Bu$++%9DRG^E|VRr?*9b_yOOO2U_&E)&f zaa=6zK^OD03Uo5ECo9(M{;Yrp_iSHgovGc+tPjdbmNs*98Ga9_q9F^qtQmSl4#}df z1cu|OA!B5CBsHXu9y^jUlZ|^gF72(?(WQUEFV@q*@v*m#jvPrP%%roL)>1E^+txvF zB09Vdy@-xqSqFM$z2O9ZFv(fZM3#6aJ|G)^93tI^>E8zF+NLVOm~LoBLXT)tST|3Y zX{VsZV~V7TYB(s#a>B4+=Ic?Cw$ZysiJ$)U4)M5jLk$a}s>Q^3IHXnc=)O;gm-e0^ zJ#@?@&8~zbstF|&mnBI_=v5Q?&li^ByDy0+({h3I*yx)VE%Ec0$cjs^{@rvXqALka zh^bX^I%A2YpGY(HU$?3nH%J#fcY_?K_lsml#&?e#0$N!i9@_DMxZS!STKhLN-3Y1H zu9d1oa0B1#j$8dnQcyEuiHIB%syodzwDJzyrZn`va==XU`$mmpZ^X@{Yk=eElWlx! h<7$-Sk`Jpd*8uHr<8$`aDBbAe`|S^-^q`NA{s&8?TWtUU diff --git a/Test/VRandomTest/temp/_phase1_manifest.json b/Test/VRandomTest/temp/_phase1_manifest.json index d55d672..e001839 100644 --- a/Test/VRandomTest/temp/_phase1_manifest.json +++ b/Test/VRandomTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\VRandomTest\\App\\main.py": {"sha1": "e24a7f4a875f4518", "mtime": 1782109440.0645702, "size": 4476}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784375629.8057406, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\vipermath.py": {"sha1": "3f7c5e78d8652535", "mtime": 1781532528.2518907, "size": 15412}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\vrandom.py": {"sha1": "62cc01c2bb770ca3", "mtime": 1782101201.2607212, "size": 12067}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\VRandomTest\\App\\main.py": {"sha1": "e24a7f4a875f4518", "mtime": 1782109440.0645702, "size": 4476}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\vipermath.py": {"sha1": "3f7c5e78d8652535", "mtime": 1781532528.2518907, "size": 15412}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\vrandom.py": {"sha1": "62cc01c2bb770ca3", "mtime": 1782101201.2607212, "size": 12067}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/VariadicTest/output/c1416dfae155d6e2.deps.json b/Test/VariadicTest/output/c1416dfae155d6e2.deps.json index b73b108..8ef9b0e 100644 --- a/Test/VariadicTest/output/c1416dfae155d6e2.deps.json +++ b/Test/VariadicTest/output/c1416dfae155d6e2.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "viperlib": "1d40c4bdc94641c5", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"testcheck": "14d33679f7fadf1f", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb"} \ No newline at end of file diff --git a/Test/VariadicTest/temp/1d40c4bdc94641c5.pyi b/Test/VariadicTest/temp/1d40c4bdc94641c5.pyi deleted file mode 100644 index 597cc07..0000000 --- a/Test/VariadicTest/temp/1d40c4bdc94641c5.pyi +++ /dev/null @@ -1,24 +0,0 @@ -""" -Auto-generated Python stub file from viperlib.py -Module: viperlib -""" - - -import t, c -import viperio -import stdio -from stdarg import arg, va_arg - -TEMP_BUF_SIZE: t.CDefine = 68 - -def get_digit_count(num: t.CUnsignedInt, base: t.CInt) -> t.CStatic | t.CInt: pass - -def sprintf(buf: t.CChar | t.CPtr, rule: str, *args) -> t.CVoid | t.CExport: pass - -def vsprintf(buf: t.CChar | t.CPtr, rule: str, *args) -> t.CInt: pass - -def snprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, *args) -> t.CInt | t.CExport: pass - -def _check_special_float(fv: t.CDouble) -> t.CInt: pass - -def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.CPtr) -> t.CInt | t.CExport: pass diff --git a/Test/VariadicTest/temp/_phase1_manifest.json b/Test/VariadicTest/temp/_phase1_manifest.json index dd25696..95e1278 100644 --- a/Test/VariadicTest/temp/_phase1_manifest.json +++ b/Test/VariadicTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\VariadicTest\\App\\main.py": {"sha1": "c1416dfae155d6e2", "mtime": 1782266230.8679473, "size": 6842}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.py": {"sha1": "71e0a3ffcb3ebfad", "mtime": 1781258888.113146, "size": 277}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784387475.6951904, "size": 10395}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784375629.8057406, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.py": {"sha1": "1d40c4bdc94641c5", "mtime": 1784470563.362105, "size": 56865}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\VariadicTest\\App\\main.py": {"sha1": "c1416dfae155d6e2", "mtime": 1782266230.8679473, "size": 6842}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.py": {"sha1": "71e0a3ffcb3ebfad", "mtime": 1781258888.113146, "size": 277}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784566611.8280091, "size": 10395}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.py": {"sha1": "c3b259b4059f8668", "mtime": 1784566611.8459883, "size": 56772}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/VariadicTest/temp/_sha1_map.txt b/Test/VariadicTest/temp/_sha1_map.txt index 7606622..cfc6252 100644 --- a/Test/VariadicTest/temp/_sha1_map.txt +++ b/Test/VariadicTest/temp/_sha1_map.txt @@ -1,10 +1,10 @@ 14d33679f7fadf1f:includes/testcheck.py -1d40c4bdc94641c5:includes/viperlib.py 6f62fe05c5ea1ceb:includes/stdio.py 71e0a3ffcb3ebfad:includes/stdarg.py 7e529fe7a078cfef:includes/w32\win32base.py 9474791561654346:includes/string.py bbdf3bbd4c3bc28c:includes/w32\win32console.py c1416dfae155d6e2:main.py +c3b259b4059f8668:includes/viperlib.py c9f4be41ca1cc2b4:includes/viperio.py f5522571bcce7bcb:includes/stdint.py diff --git a/Test/VariadicTest/temp/c3b259b4059f8668.pyi b/Test/VariadicTest/temp/c3b259b4059f8668.pyi new file mode 100644 index 0000000..67ff4ce --- /dev/null +++ b/Test/VariadicTest/temp/c3b259b4059f8668.pyi @@ -0,0 +1,23 @@ +""" +Auto-generated Python stub file from viperlib.py +Module: viperlib +""" + + +import t, c +import viperio +from stdarg import arg, va_arg + +TEMP_BUF_SIZE: t.CDefine = 68 + +def get_digit_count(num: t.CUnsignedInt, base: t.CInt) -> t.CStatic | t.CInt: pass + +def sprintf(buf: t.CChar | t.CPtr, rule: str, *args) -> t.CVoid | t.CExport: pass + +def vsprintf(buf: t.CChar | t.CPtr, rule: str, *args) -> t.CInt: pass + +def snprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, *args) -> t.CInt | t.CExport: pass + +def _check_special_float(fv: t.CDouble) -> t.CInt: pass + +def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.CPtr) -> t.CInt | t.CExport: pass diff --git a/Test/WebTest/output/8046d45456d0b153.deps.json b/Test/WebTest/output/8046d45456d0b153.deps.json index 3200f3c..30ad21a 100644 --- a/Test/WebTest/output/8046d45456d0b153.deps.json +++ b/Test/WebTest/output/8046d45456d0b153.deps.json @@ -1 +1 @@ -{"atom": "271ea3decb810db2", "memhub": "47775d5e50909338", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "string": "9474791561654346", "requests": "b558d8d8f01f4825", "viperio": "c9f4be41ca1cc2b4", "socket": "d7e3386b828acb66", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"atom": "271ea3decb810db2", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "stdio": "6f62fe05c5ea1ceb", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "string": "9474791561654346", "requests": "b558d8d8f01f4825", "viperio": "c9f4be41ca1cc2b4", "socket": "d7e3386b828acb66", "stdint": "f5522571bcce7bcb"} \ No newline at end of file diff --git a/Test/WebTest/output/_shared_sym_includes.pickle b/Test/WebTest/output/_shared_sym_includes.pickle index 3629d39fa5989d92d4fb2655216ab506507828d9..6df4dc918f7ba2b4abd63acd1d4acb1ef1a13f9c 100644 GIT binary patch delta 48467 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 delta 2211 zcmZvdU1%It6vs0&XK&iX(%tN4KeFGU%~!LV`P`X7W7C>q6iYVL3Y!Sq`PhM^A4xWC z1TmOm>x)}NU3&W>^+6Ge)=G#I^rZv^Ef$FnLW|h?V8vGO)q)SsHrbcG_wAhDJ@^p7$)f(-L!1qbklU1Fil}J3@-&*+s`@PG%5rfSpsB|p zf>+{@C)Mx8y+`~d4*SWY&IF8;w48upN{Yn<#PE6ovgC~i3D77v7A|u!Jdvb5(#0fD zmicxP#z^&KidxS|%ByE7MO*)yDd@(ocSI>_BLzteX$X*s_NQSVNlR%MBFJQM|7Bo^(&wJ6H*b?!TAvG9TAv?hY3ld0)Xkha zheBBDg#=koxtB79?uWgwn)3^`%v-W)Te@731xvxXB1B1gya)eZ*ZR^kYUcG^t4c}0|rbvcmo3>-=rl?x= zm3qz3YZXHgH9=D)QI;LsgYNZBUyZ>Jzw-?SC0$T8+fq!Upo^w1ddK*u`@U$G+TFYny8?;kOpiEf$sVWEDNnwwK&1RkVxy EAMh_gYXATM diff --git a/Test/WebTest/output/b558d8d8f01f4825.deps.json b/Test/WebTest/output/b558d8d8f01f4825.deps.json index 6b956d0..2ce3d1d 100644 --- a/Test/WebTest/output/b558d8d8f01f4825.deps.json +++ b/Test/WebTest/output/b558d8d8f01f4825.deps.json @@ -1 +1 @@ -{"atom": "271ea3decb810db2", "memhub": "47775d5e50909338", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "main": "8046d45456d0b153", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "string": "9474791561654346", "requests": "b558d8d8f01f4825", "viperio": "c9f4be41ca1cc2b4", "socket": "d7e3386b828acb66", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"atom": "271ea3decb810db2", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "stdio": "6f62fe05c5ea1ceb", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "main": "8046d45456d0b153", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "string": "9474791561654346", "requests": "b558d8d8f01f4825", "viperio": "c9f4be41ca1cc2b4", "socket": "d7e3386b828acb66", "stdint": "f5522571bcce7bcb"} \ No newline at end of file diff --git a/Test/WebTest/output/d7e3386b828acb66.deps.json b/Test/WebTest/output/d7e3386b828acb66.deps.json index 6b956d0..2ce3d1d 100644 --- a/Test/WebTest/output/d7e3386b828acb66.deps.json +++ b/Test/WebTest/output/d7e3386b828acb66.deps.json @@ -1 +1 @@ -{"atom": "271ea3decb810db2", "memhub": "47775d5e50909338", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "main": "8046d45456d0b153", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "string": "9474791561654346", "requests": "b558d8d8f01f4825", "viperio": "c9f4be41ca1cc2b4", "socket": "d7e3386b828acb66", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"atom": "271ea3decb810db2", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "stdio": "6f62fe05c5ea1ceb", "memhub": "754640ce30cfebcc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "main": "8046d45456d0b153", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "string": "9474791561654346", "requests": "b558d8d8f01f4825", "viperio": "c9f4be41ca1cc2b4", "socket": "d7e3386b828acb66", "stdint": "f5522571bcce7bcb"} \ No newline at end of file diff --git a/Test/WebTest/temp/47775d5e50909338.pyi b/Test/WebTest/temp/754640ce30cfebcc.pyi similarity index 100% rename from Test/WebTest/temp/47775d5e50909338.pyi rename to Test/WebTest/temp/754640ce30cfebcc.pyi diff --git a/Test/WebTest/temp/_phase1_manifest.json b/Test/WebTest/temp/_phase1_manifest.json index d48293d..dbce571 100644 --- a/Test/WebTest/temp/_phase1_manifest.json +++ b/Test/WebTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\WebTest\\App\\main.py": {"sha1": "8046d45456d0b153", "mtime": 1783055933.4493492, "size": 2570}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "47775d5e50909338", "mtime": 1784464283.860502, "size": 19750}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\platmacro.py": {"sha1": "93c1d18e35d188d6", "mtime": 1781237231.03366, "size": 1422}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\requests.py": {"sha1": "b558d8d8f01f4825", "mtime": 1783055330.1315396, "size": 9850}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\socket.py": {"sha1": "d7e3386b828acb66", "mtime": 1783054980.3909142, "size": 14514}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784464295.903657, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784387475.6951904, "size": 10395}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\winsock2.py": {"sha1": "6446627d4f07a1b5", "mtime": 1783052668.8022628, "size": 3547}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\WebTest\\App\\main.py": {"sha1": "8046d45456d0b153", "mtime": 1783055933.4493492, "size": 2570}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "754640ce30cfebcc", "mtime": 1784566611.8434613, "size": 20300}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\platmacro.py": {"sha1": "93c1d18e35d188d6", "mtime": 1781237231.03366, "size": 1422}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\requests.py": {"sha1": "b558d8d8f01f4825", "mtime": 1783055330.1315396, "size": 9850}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\socket.py": {"sha1": "d7e3386b828acb66", "mtime": 1783054980.3909142, "size": 14514}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784566611.8280091, "size": 10395}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\winsock2.py": {"sha1": "6446627d4f07a1b5", "mtime": 1783052668.8022628, "size": 3547}} \ No newline at end of file diff --git a/Test/WebTest/temp/_sha1_map.txt b/Test/WebTest/temp/_sha1_map.txt index 18e225c..e9f73ca 100644 --- a/Test/WebTest/temp/_sha1_map.txt +++ b/Test/WebTest/temp/_sha1_map.txt @@ -1,7 +1,7 @@ 271ea3decb810db2:includes/atom.py -47775d5e50909338:includes/memhub.py 6446627d4f07a1b5:includes/w32\winsock2.py 6f62fe05c5ea1ceb:includes/stdio.py +754640ce30cfebcc:includes/memhub.py 7e529fe7a078cfef:includes/w32\win32base.py 8046d45456d0b153:main.py 90c53dd6db8d41cf:includes/stdlib.py diff --git a/Test/ZlibTest/temp/_phase1_manifest.json b/Test/ZlibTest/temp/_phase1_manifest.json index 1c916de..2ea54a6 100644 --- a/Test/ZlibTest/temp/_phase1_manifest.json +++ b/Test/ZlibTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ZlibTest\\App\\__zlib\\pyzlib.py": {"sha1": "0f8134f67bdaba8f", "mtime": 1782266233.8661451, "size": 20930}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ZlibTest\\App\\__zlib\\test_pyzlib.py": {"sha1": "d855b3e66d1d6522", "mtime": 1782407614.5315387, "size": 36204}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ZlibTest\\App\\__zlib\\zchecksum.py": {"sha1": "cb151b297f4ea56d", "mtime": 1782266234.306909, "size": 4068}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ZlibTest\\App\\__zlib\\zdef.py": {"sha1": "9b7d2adaae94f021", "mtime": 1782393175.830038, "size": 8195}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ZlibTest\\App\\__zlib\\zdeflate.py": {"sha1": "784dde8a8697b7ab", "mtime": 1782396643.2488594, "size": 18977}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ZlibTest\\App\\__zlib\\zhuff.py": {"sha1": "dd19090b337e9bea", "mtime": 1782388678.1362753, "size": 13596}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ZlibTest\\App\\__zlib\\zinflate.py": {"sha1": "e445a2bb299d1b7d", "mtime": 1782266257.0389085, "size": 18067}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ZlibTest\\App\\main.py": {"sha1": "03b24bc1d9327958", "mtime": 1782110043.5860827, "size": 484}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784464295.903657, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784387475.6951904, "size": 10395}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784375629.8057406, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32memory.py": {"sha1": "72e2d5ccb7cedcf1", "mtime": 1781200703.5389092, "size": 3142}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ZlibTest\\App\\__zlib\\pyzlib.py": {"sha1": "0f8134f67bdaba8f", "mtime": 1782266233.8661451, "size": 20930}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ZlibTest\\App\\__zlib\\test_pyzlib.py": {"sha1": "d855b3e66d1d6522", "mtime": 1782407614.5315387, "size": 36204}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ZlibTest\\App\\__zlib\\zchecksum.py": {"sha1": "cb151b297f4ea56d", "mtime": 1782266234.306909, "size": 4068}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ZlibTest\\App\\__zlib\\zdef.py": {"sha1": "9b7d2adaae94f021", "mtime": 1782393175.830038, "size": 8195}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ZlibTest\\App\\__zlib\\zdeflate.py": {"sha1": "784dde8a8697b7ab", "mtime": 1782396643.2488594, "size": 18977}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ZlibTest\\App\\__zlib\\zhuff.py": {"sha1": "dd19090b337e9bea", "mtime": 1782388678.1362753, "size": 13596}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ZlibTest\\App\\__zlib\\zinflate.py": {"sha1": "e445a2bb299d1b7d", "mtime": 1782266257.0389085, "size": 18067}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ZlibTest\\App\\main.py": {"sha1": "03b24bc1d9327958", "mtime": 1782110043.5860827, "size": 484}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784566611.8280091, "size": 10395}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32memory.py": {"sha1": "72e2d5ccb7cedcf1", "mtime": 1781200703.5389092, "size": 3142}} \ No newline at end of file diff --git a/Test/ZlibTest/temp/_shared_sym.json b/Test/ZlibTest/temp/_shared_sym.json index cdb3e3fc138df0c509abf561a94a5d2ac800132d..3a837330a485f1c052fca16d344cc596205bc528 100644 GIT binary patch delta 48444 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 L_&xu#+BN?_Cf3Sy delta 2191 zcmZuyTWs4@7>;BA$7vHmM%mgF3I$fubRo4JJGPgqmvv(6peq`k5EHxj60eQgWu&7> zjGHvxW(klood*yS8k#gQRg`U5h#@WlfnX1yPU;It8=5q!8XbZ%O^l>C9e&9kz1#O`pJ*q>kR6L7gBcz^|9aD z#{RFp1(7)z3l`;mrhfyo)$?7OkKF+^Z)K6W`bNNr?+x4E2a7XZ>`y_kcdnZ?jt82Z z=h$n>fHwUL+nNs+7h1WUyMo1*B3JbD>RqVb)z`V&(YUOts$wezMbHI3o7M22|8kF! zXm6F%Nc6=j*FmBmRJk1_TB~vri4NAdUJ`w+#yv`+=WAS!L~qx)ZW7I|a%mDRt03N|Qf=*I4 zi6Bi;97T}8Um$phR1ERZig}*4rSY(h6kM(gPEiGmJPeY8WCSShgB1at7(nL+oO0w+OKIlC)hg=4`^C;Dl)kRgaEyXl) zx@78-zm1>2h}!OP97z=X?~#+06>H54Fa3Yi>~c1%r| z1;jA&! z`ORURc!KZ8#b^2SC(rR5lXuZ*$$nv~P;uFzr^hSB;RB)2TW*V0F3rsBpI+PAKYPS5 oea4%W?&9`|P^dUk{~11j2ln#chDRna+Q)ATZ=b+p`}ke|0S=;EG5`Po diff --git a/Test/regression_test.py b/Test/regression_test.py index 7815b75..44f252b 100644 --- a/Test/regression_test.py +++ b/Test/regression_test.py @@ -82,7 +82,7 @@ def find_test_projects(): def compile_project(name, proj_dir, proj_json_path): """编译单个测试项目,返回 (success, elapsed, output)""" - cmd = f'python -u "{PROJECTRANS}" --project "{proj_json_path}" --clean' + cmd = f'D:\\Python312\\python.exe -u "{PROJECTRANS}" --project "{proj_json_path}" --clean' start = time.time() result = subprocess.run( diff --git a/TransPyV/App/lib/core/IncludesScanner.py b/TransPyV/App/lib/core/IncludesScanner.py index 85c7978..3c0f5b4 100644 --- a/TransPyV/App/lib/core/IncludesScanner.py +++ b/TransPyV/App/lib/core/IncludesScanner.py @@ -171,7 +171,6 @@ def compute_file_sha1(pool: memhub.MemBuddy | t.CPtr, bytes_read: t.CInt64T = f.read_all(buf, BUF_SIZE) f.close() if bytes_read <= 0: - stdlib.free(buf) return None # 原地去除 \r(CRLF → LF),与 Projectrans.py 文本模式读取一致 @@ -190,21 +189,17 @@ def compute_file_sha1(pool: memhub.MemBuddy | t.CPtr, # 计算 SHA1 ctx: hashlib.sha1 | t.CPtr = hashlib.sha1() if ctx is None: - stdlib.free(buf) return None ctx.update(buf) digest: bytes = stdlib.malloc(hashlib.SHA1_DIGEST_LEN) if digest is None: - stdlib.free(buf) return None ctx.final(digest) # 转为十六进制字符串(取前 8 字节 = 16 个十六进制字符) hex_buf: str = stdlib.malloc(17) if hex_buf is None: - stdlib.free(buf) - stdlib.free(digest) return None for i in range(8): hi: int = (digest[i] >> 4) & 0xF @@ -218,9 +213,6 @@ def compute_file_sha1(pool: memhub.MemBuddy | t.CPtr, else: hex_buf[i * 2 + 1] = 'a' + (lo - 10) hex_buf[16] = '\0' - # 释放临时缓冲区(hex_buf 由调用者负责释放) - stdlib.free(buf) - stdlib.free(digest) return hex_buf @@ -253,8 +245,6 @@ def scan_directory_recursive(pool: memhub.MemBuddy | t.CPtr, handle: win32base.HANDLE = win32file.FindFirstFileA(pattern, find_data) if handle == win32base.INVALID_HANDLE_VALUE: - stdlib.free(pattern) - stdlib.free(find_data) return 1 # 遍历所有文件和子目录 @@ -294,7 +284,6 @@ def scan_directory_recursive(pool: memhub.MemBuddy | t.CPtr, prefix_len = string.strlen(rel_prefix) rel_path: bytes = stdlib.malloc(prefix_len + fname_len + 2) if rel_path is None: - stdlib.free(full_path) break if rel_prefix is not None and prefix_len > 0: viperlib.snprintf(rel_path, prefix_len + fname_len + 2, "%s/%s", rel_prefix, fname) @@ -323,21 +312,13 @@ def scan_directory_recursive(pool: memhub.MemBuddy | t.CPtr, sha1: str = compute_file_sha1(pool, full_path) if sha1 is not None: add_file_entry(result, pool, full_path, rel_path, sha1) - # 释放 compute_file_sha1 返回的临时 hex_buf - stdlib.free(sha1) - - # 释放本次迭代分配的路径缓冲区 - stdlib.free(full_path) - stdlib.free(rel_path) + stdio.printf(" [scan] %s -> %s\n", rel_path, sha1) # 继续搜索下一个文件 - nxt: t.CInt = win32file.FindNextFileA(handle, find_data) - if nxt == 0: + if win32file.FindNextFileA(handle, find_data) == 0: break win32file.FindClose(handle) - stdlib.free(pattern) - stdlib.free(find_data) return 0 @@ -360,8 +341,7 @@ def scan_includes(pool: memhub.MemBuddy | t.CPtr, scan_directory_recursive(pool, includes_dir, None, result) - count: t.CInt = result.Count - stdio.printf("[Phase1] 扫描完成: %d 个 .py 文件\n", count) + stdio.printf("[Phase1] 扫描完成: %d 个 .py 文件\n", result.Count) return result diff --git a/TransPyV/App/lib/core/Phase1.py b/TransPyV/App/lib/core/Phase1.py index e3d1f62..88d62f6 100644 --- a/TransPyV/App/lib/core/Phase1.py +++ b/TransPyV/App/lib/core/Phase1.py @@ -44,78 +44,47 @@ SRC_BUF_SIZE: t.CDefine = 1048576 def RunPhase1(mb: memhub.MemBuddy | t.CPtr, includes_dir: str, temp_dir: str, log: VLogger.Logger | t.CPtr) -> int: """Phase1: 扫描 includes 目录,按需翻译并生成 stub""" - stdio.printf("[P1 ENTER] mb=%p inc=%p temp=%p log=%p\n", mb, includes_dir, temp_dir, log) - stdio.fflush(0) if includes_dir is None or temp_dir is None: stdio.printf("[Phase1] includes_dir 或 temp_dir 为空,跳过\n") return 1 - stdio.printf("[P1] before log.banner\n") - stdio.fflush(0) if log is not None: log.banner("Phase1: 扫描 includes(按需翻译)") - stdio.printf("[P1] after log.banner\n") - stdio.fflush(0) # 扫描 includes 目录 - stdio.printf("[P1] before scan_includes: mb=%p inc=%s\n", mb, includes_dir) - stdio.fflush(0) result: IncludesScanner.ScanResult | t.CPtr = IncludesScanner.scan_includes(mb, includes_dir) - stdio.printf("[P1] after scan_includes: result=%p\n", result) - stdio.fflush(0) if result is None: stdio.printf("[Phase1] 扫描失败\n") return 1 - stdio.printf("[P1] result.Count=%d\n", result.Count) - stdio.fflush(0) + stdio.printf("[Phase1] 共 %d 个文件\n", result.Count) # 读取 _sha1_map.txt 获取需要的 includes SHA1 集合 + # 优先使用 Projectrans.py 生成的 _sha1_map.txt(含依赖分析,只包含需要的 includes) + # 若不存在,则从扫描结果生成(包含所有 includes,可能导致结构体表溢出) sha1_set: str = stdlib.malloc(StubMerger.MAX_INCLUDES_SHA1 * 17) - stdio.printf("[P1] sha1_set=%p\n", sha1_set) - stdio.fflush(0) if sha1_set is None: stdio.printf("[Phase1] sha1_set 分配失败\n") return 1 string.memset(sha1_set, 0, StubMerger.MAX_INCLUDES_SHA1 * 17) - stdio.printf("[P1] before _load_includes_sha1_set\n") - stdio.fflush(0) set_count: int = StubMerger._load_includes_sha1_set(mb, temp_dir, sha1_set) - stdio.printf("[P1] set_count=%d\n", set_count) - stdio.fflush(0) if set_count <= 0: stdio.printf("[Phase1] _sha1_map.txt 不存在或为空,从扫描结果生成\n") - stdio.fflush(0) - stdio.printf("[P1] before WriteIncludesSha1Map\n") - stdio.fflush(0) StubMerger.WriteIncludesSha1Map(mb, temp_dir, result, None, 0) - stdio.printf("[P1] after WriteIncludesSha1Map, before _load_includes_sha1_set\n") - stdio.fflush(0) set_count = StubMerger._load_includes_sha1_set(mb, temp_dir, sha1_set) - stdio.printf("[P1] set_count2=%d\n", set_count) - stdio.fflush(0) if set_count < 0: stdio.printf("[Phase1] 无法加载 _sha1_map.txt,跳过 Phase1\n") return 1 stdio.printf("[Phase1] includes SHA1 集合: %d 个\n", set_count) - stdio.fflush(0) # 构建模块 SHA1 映射(供跨模块函数调用名混淆使用) td_len_p1map: t.CSizeT = string.strlen(temp_dir) p1_sha1_arr: bytes = stdlib.malloc(StubMerger.MAX_INCLUDES * 17) p1_mod_arr: bytes = stdlib.malloc(StubMerger.MAX_INCLUDES * 64) p1_inc_count: int = 0 - stdio.printf("[P1] before _BuildIncludesSha1Map\n") - stdio.fflush(0) if p1_sha1_arr is not None and p1_mod_arr is not None: p1_inc_count = StubMerger._BuildIncludesSha1Map(temp_dir, td_len_p1map, p1_sha1_arr, p1_mod_arr) - stdio.printf("[P1] after _BuildIncludesSha1Map: inc=%d\n", p1_inc_count) - stdio.fflush(0) - stdio.printf("[P1] before set_module_sha1_map\n") - stdio.fflush(0) HandlesExprCall.set_module_sha1_map(p1_sha1_arr, p1_mod_arr, p1_inc_count) - stdio.printf("[P1] after set_module_sha1_map\n") - stdio.fflush(0) # 初始化 AST 表(只需一次) ast._init_tables(mb) diff --git a/TransPyV/App/lib/core/StubMerger.py b/TransPyV/App/lib/core/StubMerger.py index 1183cc4..708563a 100644 --- a/TransPyV/App/lib/core/StubMerger.py +++ b/TransPyV/App/lib/core/StubMerger.py @@ -8,7 +8,6 @@ import llvmlite import w32.win32file as win32file import w32.win32base as win32base import w32.fileio as fileio -import w32.win32memory as win32memory import viperlib import sys import ast @@ -70,7 +69,6 @@ def _load_includes_sha1_set(pool: memhub.MemBuddy | t.CPtr, f: fileio.File | t.CPtr = fileio.File(map_path, fileio.MODE.R) if f.closed: stdio.printf("[StubMerger] _sha1_map.txt 不存在: %s\n", map_path) - stdlib.free(map_path) return -1 # 读取内容(使用 stdlib.malloc 避免 mbuddy 池耗尽) @@ -78,13 +76,10 @@ def _load_includes_sha1_set(pool: memhub.MemBuddy | t.CPtr, content: str = stdlib.malloc(MAP_BUF_SIZE) if content is None: f.close() - stdlib.free(map_path) return -1 bytes_read: t.CInt64T = f.read_all(content, MAP_BUF_SIZE) f.close() - stdlib.free(map_path) if bytes_read <= 0: - stdlib.free(content) return -1 content[bytes_read] = '\0' @@ -117,7 +112,6 @@ def _load_includes_sha1_set(pool: memhub.MemBuddy | t.CPtr, sha1_set[count * 17 + 16] = '\0' count += 1 - stdlib.free(content) return count @@ -195,8 +189,6 @@ def WriteIncludesSha1Map(mb: memhub.MemBuddy | t.CPtr, temp_dir: str, written_count += 1 f.close() - stdlib.free(map_path) - stdlib.free(line_buf) stdio.printf("[Phase1] 已写入 _sha1_map.txt (%d 个 includes)\n", written_count) return 0 @@ -743,32 +735,14 @@ def _BuildIncludesSha1Map(temp_dir: str, td_len: t.CSizeT, map_buf[map_br] = '\0' else: map_buf[STUB_READ_BUF_SIZE - 1] = '\0' - stdio.printf("[BISM] map_br=%lld\n", map_br) - stdio.fflush(0) - - # 堆探针:测试堆是否已被之前的操作损坏 - probe: bytes = stdlib.malloc(17) - stdio.printf("[BISM] probe malloc(17)=%p\n", probe) - stdio.fflush(0) - if probe is not None: - stdlib.free(probe) - stdio.printf("[BISM] probe free OK\n") - stdio.fflush(0) count: int = 0 pos: t.CSizeT = 0 while pos < map_br and count < MAX_INCLUDES: - stdio.printf("[BISM] iter=%d pos=%d\n", count, pos) - stdio.fflush(0) # 提取 SHA1(16 hex) sha1: t.CChar | t.CPtr = stdlib.malloc(17) - stdio.printf("[BISM] malloc(17)=%p\n", sha1) - stdio.fflush(0) if sha1 is None: break - hv: int = win32memory.HeapValidate(win32memory.GetProcessHeap(), 0, None) - stdio.printf("[BISM] HV after malloc(sha1)=%d\n", hv) - stdio.fflush(0) string.strncpy(sha1, map_buf + pos, 16) sha1[16] = '\0' pos += 16 @@ -781,8 +755,6 @@ def _BuildIncludesSha1Map(temp_dir: str, td_len: t.CSizeT, while pos < map_br and map_buf[pos] != '\n' and map_buf[pos] != '\r' and map_buf[pos] != '\0': pos += 1 path_len: t.CSizeT = pos - path_start - stdio.printf("[BISM] path_len=%d\n", path_len) - stdio.fflush(0) # 跳过 \r\n 或 \n if pos < map_br and map_buf[pos] == '\r': pos += 1 @@ -793,49 +765,25 @@ def _BuildIncludesSha1Map(temp_dir: str, td_len: t.CSizeT, # 否则用户文件会被误判为 includes,导致 is_module_imported 模块名不匹配而跳过加载 if path_len >= 9 and string.strncmp(map_buf + path_start, "includes/", 9) == 0: path_buf: t.CChar | t.CPtr = stdlib.malloc(path_len + 1) - stdio.printf("[BISM] malloc(%d)=%p\n", path_len + 1, path_buf) - stdio.fflush(0) if path_buf is not None: string.strncpy(path_buf, map_buf + path_start, path_len) path_buf[path_len] = '\0' - hv2: int = win32memory.HeapValidate(win32memory.GetProcessHeap(), 0, None) - stdio.printf("[BISM] HV after fill(path_buf)=%d\n", hv2) - stdio.fflush(0) mod_name: str = _PathToModuleName(path_buf) - stdio.printf("[BISM] _PathToModuleName=%p\n", mod_name) - stdio.fflush(0) - hv3: int = win32memory.HeapValidate(win32memory.GetProcessHeap(), 0, None) - stdio.printf("[BISM] HV after _PathToModuleName=%d\n", hv3) - stdio.fflush(0) stdlib.free(path_buf) if mod_name is not None: # 存储 sha1 和 mod_name 到数组中 idx: t.CSizeT = t.CSizeT(count) * 17 string.strcpy(sha1_list + idx, sha1) - hv4: int = win32memory.HeapValidate(win32memory.GetProcessHeap(), 0, None) - stdio.printf("[BISM] HV after strcpy(sha1_list)=%d\n", hv4) - stdio.fflush(0) idx2: t.CSizeT = t.CSizeT(count) * 64 mn_len: t.CSizeT = string.strlen(mod_name) - stdio.printf("[BISM] mn_len=%d count=%d\n", mn_len, count) - stdio.fflush(0) if mn_len < 64: string.strcpy(mod_list + idx2, mod_name) else: string.strncpy(mod_list + idx2, mod_name, 63) mod_list[idx2 + 63] = '\0' - hv5: int = win32memory.HeapValidate(win32memory.GetProcessHeap(), 0, None) - stdio.printf("[BISM] HV after strcpy(mod_list)=%d\n", hv5) - stdio.fflush(0) stdlib.free(mod_name) - stdio.printf("[BISM] free(mod_name) OK\n") - stdio.fflush(0) count += 1 - stdio.printf("[BISM] before free(sha1=%p)\n", sha1) - stdio.fflush(0) stdlib.free(sha1) - stdio.printf("[BISM] free(sha1) OK\n") - stdio.fflush(0) stdlib.free(map_buf) return count diff --git a/TransPyV/App/main.py b/TransPyV/App/main.py index ee17071..a3c08ed 100644 --- a/TransPyV/App/main.py +++ b/TransPyV/App/main.py @@ -249,11 +249,7 @@ def main() -> int: ph1_temp: str = Config.TempDir if ph1_temp is None: ph1_temp = "." - stdio.printf("[DBG MAIN] before Phase1: Inc=%s temp=%s\n", Config.IncludesDir, ph1_temp) - stdio.fflush(0) Phase1.RunPhase1(mb, Config.IncludesDir, ph1_temp, log) - stdio.printf("[DBG MAIN] after Phase1\n") - stdio.fflush(0) # 如果仅 Phase1(不执行 Phase2),直接退出 if do_phase2 == 0: stdio.printf("[phase] Phase1 完成,退出\n") diff --git a/TransPyV/Test/temp/_sha1_map.txt b/TransPyV/Test/temp/_sha1_map.txt index 47d99d0..2a58f3d 100644 --- a/TransPyV/Test/temp/_sha1_map.txt +++ b/TransPyV/Test/temp/_sha1_map.txt @@ -1,87 +1,11 @@ -aba439b7882ad9d6:includes/argparse.py -3487a256b250bb74:includes/asm.py -4337fb260448bbe2:includes/ast/astaux.py -5dab8cb390496d22:includes/ast/base.py -47767b5026a8ee15:includes/ast/exprs.py -0c212981c180e7fb:includes/ast/lexer.py -4dd6b3f1427d1cc5:includes/ast/match.py -ee52c08239684346:includes/ast/parser.py -657e182b27c2a022:includes/ast/stmts.py -b547ac4f380bddb6:includes/ast/tokens.py -34548789d646f432:includes/ast/__init__.py 271ea3decb810db2:includes/atom.py -971e24c228377a9b:includes/base64.py -257e074b935c33b4:includes/binascii.py -ea80a4a724accbda:includes/builtins.py -ad6c853acfc0c146:includes/condition.py -9d8626a10208b8de:includes/event.py -96837bcc64032444:includes/hashlib/__init__.py -19f8024d10c828e8:includes/hashlib/__md5.py -0df65b8ed15664b0:includes/hashlib/__sha1.py -c9d54a4158f7f5a8:includes/hashlib/__sha256.py -6ff26590374ae6fc:includes/hashlib/__sha512.py -b8c66c8ff44eb874:includes/hashtable.py -6166aecc7fa7ad65:includes/hello.py -57288496f7c2d1ad:includes/json/__init__.py -240a9a4157959a9f:includes/json/__parser.py -20cd49775c100a38:includes/json/__writer.py -2d39c6c7d3557b3e:includes/linkedlist.py -946e087da91aaada:includes/llvmlite/__builder.py -89b3965176cd2407:includes/llvmlite/__function.py -95394ca8da0f655a:includes/llvmlite/__init__.py -21a7fcfc665f75ef:includes/llvmlite/__module.py -15f1ded02f3aa5bc:includes/llvmlite/__types.py -f9e36e2cd6fa659f:includes/llvmlite/__values.py -6b3bc463fd044545:includes/llvmlite/__verify.py -56d07ea7e30ef631:includes/lock.py 47775d5e50909338:includes/memhub.py -c3a6aed1f1fb8b1e:includes/numpy/__init__.py -13110effbb0bb06c:includes/os/path.py -d152115b49e50218:includes/os/_posix.py -a68b70f233541a7f:includes/os/_win32.py -76dd6c275aa72b3b:includes/os/__init__.py -93c1d18e35d188d6:includes/platmacro.py -e0f1d864a10b2e4d:includes/plist.py -6503c97dde0c79c4:includes/posix.py -b558d8d8f01f4825:includes/requests.py -da44924f0777c67a:includes/rwlock.py -abbcbd92436cc16a:includes/shutil.py -d7e3386b828acb66:includes/socket.py -b19a9e500f677f2e:includes/spinlock.py -71e0a3ffcb3ebfad:includes/stdarg.py f5522571bcce7bcb:includes/stdint.py 6f62fe05c5ea1ceb:includes/stdio.py 90c53dd6db8d41cf:includes/stdlib.py -9474791561654346:includes/string.py -2da636c61863c815:includes/subprocess.py -b5a965302cded36b:includes/sys.py +85a6b24688da4405:includes/string.py 14d33679f7fadf1f:includes/testcheck.py -a7bc8c01684c0001:includes/this.py -285a822aa26bfbda:includes/vector.py c9f4be41ca1cc2b4:includes/viperio.py -c3b259b4059f8668:includes/viperlib.py -3f7c5e78d8652535:includes/vipermath.py -c24f25b14b4bbd0a:includes/vipersimd.py -3624cfde3c5cb6cb:includes/viperstring.py -62cc01c2bb770ca3:includes/vrandom.py -87274c2b0190fb33:includes/vthreading.py -0035c95a18d4f8e8:includes/w32/fileio.py 7e529fe7a078cfef:includes/w32/win32base.py bbdf3bbd4c3bc28c:includes/w32/win32console.py -f6b51804a0ba8ff0:includes/w32/win32file.py -72e2d5ccb7cedcf1:includes/w32/win32memory.py -067c78e9f121dce3:includes/w32/win32process.py -06f53cc594b4ac6c:includes/w32/win32sync.py -6446627d4f07a1b5:includes/w32/winsock2.py -1c46d554b3a3f9f3:includes/zlib/pyzlib.py -8ebed83a7817fa0c:includes/zlib/zchecksum.py -213348433fb01cc6:includes/zlib/zdef.py -90921d009fdd674c:includes/zlib/zdeflate.py -d541ade6afb689a5:includes/zlib/zhuff.py -451745df21e598af:includes/zlib/zinflate.py -d63d2c2a2bd9bd2a:includes/zlib/__init__.py -e3e7b6de8d7d8b03:includes/_dict.py -79b337e5ea8951e2:includes/_fakeduck.py 668790e6c9efdbae:includes/_list.py -b62eded2baf30423:includes/_variant.py -5b2e220c5bae60c9:includes/_withcontent.py diff --git a/TransPyV/output/001c1416e7a7dc50.deps.json b/TransPyV/output/001c1416e7a7dc50.deps.json index 5193088..1b931bc 100644 --- a/TransPyV/output/001c1416e7a7dc50.deps.json +++ b/TransPyV/output/001c1416e7a7dc50.deps.json @@ -1 +1 @@ -{"w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "memhub": "47775d5e50909338", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "lib.core.StubMerger": "9d90ff4bae201361", "StubMerger": "9d90ff4bae201361", "lib.core.IncludesScanner": "a1a7dbafa49abfd1", "IncludesScanner": "a1a7dbafa49abfd1", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "lib.core.Phase1": "c8d5323b1a4df063", "Phase1": "c8d5323b1a4df063", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "main": "f8e903a99e1d0a57", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file +{"w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.constants.config": "39daf57c7d4c5381", "config": "39daf57c7d4c5381", "lib.includes.t": "3a5e6e9aa900b2ca", "t": "3a5e6e9aa900b2ca", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "main": "950028de389b7a7b", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "lib.core.StubMerger": "b5d05dbd7fee36ef", "StubMerger": "b5d05dbd7fee36ef", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "lib.core.IncludesScanner": "bd82e3ca81546c76", "IncludesScanner": "bd82e3ca81546c76", "lib.includes.c": "be12ff5e6da1b6ee", "c": "be12ff5e6da1b6ee", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Phase1": "db7c4a8f09d02a17", "Phase1": "db7c4a8f09d02a17", "_dict": "e3e7b6de8d7d8b03", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file diff --git a/TransPyV/output/02885f6f134079c2.deps.json b/TransPyV/output/02885f6f134079c2.deps.json index 6e7873d..a8c1ba5 100644 --- a/TransPyV/output/02885f6f134079c2.deps.json +++ b/TransPyV/output/02885f6f134079c2.deps.json @@ -1 +1 @@ -{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "memhub": "47775d5e50909338", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "lib.core.StubMerger": "9d90ff4bae201361", "StubMerger": "9d90ff4bae201361", "lib.core.IncludesScanner": "a1a7dbafa49abfd1", "IncludesScanner": "a1a7dbafa49abfd1", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "lib.core.Phase1": "c8d5323b1a4df063", "Phase1": "c8d5323b1a4df063", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "main": "f8e903a99e1d0a57", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file +{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.constants.config": "39daf57c7d4c5381", "config": "39daf57c7d4c5381", "lib.includes.t": "3a5e6e9aa900b2ca", "t": "3a5e6e9aa900b2ca", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "main": "950028de389b7a7b", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "lib.core.StubMerger": "b5d05dbd7fee36ef", "StubMerger": "b5d05dbd7fee36ef", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "lib.core.IncludesScanner": "bd82e3ca81546c76", "IncludesScanner": "bd82e3ca81546c76", "lib.includes.c": "be12ff5e6da1b6ee", "c": "be12ff5e6da1b6ee", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Phase1": "db7c4a8f09d02a17", "Phase1": "db7c4a8f09d02a17", "_dict": "e3e7b6de8d7d8b03", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file diff --git a/TransPyV/output/07a8c82a8ca2be90.deps.json b/TransPyV/output/07a8c82a8ca2be90.deps.json index f81cdfd..cd85113 100644 --- a/TransPyV/output/07a8c82a8ca2be90.deps.json +++ b/TransPyV/output/07a8c82a8ca2be90.deps.json @@ -1 +1 @@ -{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "memhub": "47775d5e50909338", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "lib.core.StubMerger": "9d90ff4bae201361", "StubMerger": "9d90ff4bae201361", "lib.core.IncludesScanner": "a1a7dbafa49abfd1", "IncludesScanner": "a1a7dbafa49abfd1", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "lib.core.Phase1": "c8d5323b1a4df063", "Phase1": "c8d5323b1a4df063", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "main": "f8e903a99e1d0a57", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file +{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.constants.config": "39daf57c7d4c5381", "config": "39daf57c7d4c5381", "lib.includes.t": "3a5e6e9aa900b2ca", "t": "3a5e6e9aa900b2ca", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "main": "950028de389b7a7b", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "lib.core.StubMerger": "b5d05dbd7fee36ef", "StubMerger": "b5d05dbd7fee36ef", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "lib.core.IncludesScanner": "bd82e3ca81546c76", "IncludesScanner": "bd82e3ca81546c76", "lib.includes.c": "be12ff5e6da1b6ee", "c": "be12ff5e6da1b6ee", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Phase1": "db7c4a8f09d02a17", "Phase1": "db7c4a8f09d02a17", "_dict": "e3e7b6de8d7d8b03", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file diff --git a/TransPyV/output/0c56128647a0b845.deps.json b/TransPyV/output/0c56128647a0b845.deps.json index a33c055..cae3326 100644 --- a/TransPyV/output/0c56128647a0b845.deps.json +++ b/TransPyV/output/0c56128647a0b845.deps.json @@ -1 +1 @@ -{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "memhub": "47775d5e50909338", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "lib.core.StubMerger": "9d90ff4bae201361", "StubMerger": "9d90ff4bae201361", "lib.core.IncludesScanner": "a1a7dbafa49abfd1", "IncludesScanner": "a1a7dbafa49abfd1", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "lib.core.Phase1": "c8d5323b1a4df063", "Phase1": "c8d5323b1a4df063", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "main": "f8e903a99e1d0a57", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file +{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.constants.config": "39daf57c7d4c5381", "config": "39daf57c7d4c5381", "lib.includes.t": "3a5e6e9aa900b2ca", "t": "3a5e6e9aa900b2ca", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "main": "950028de389b7a7b", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "lib.core.StubMerger": "b5d05dbd7fee36ef", "StubMerger": "b5d05dbd7fee36ef", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "lib.core.IncludesScanner": "bd82e3ca81546c76", "IncludesScanner": "bd82e3ca81546c76", "lib.includes.c": "be12ff5e6da1b6ee", "c": "be12ff5e6da1b6ee", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Phase1": "db7c4a8f09d02a17", "Phase1": "db7c4a8f09d02a17", "_dict": "e3e7b6de8d7d8b03", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file diff --git a/TransPyV/output/21fffba3315e81b4.deps.json b/TransPyV/output/21fffba3315e81b4.deps.json index a905ada..58c4422 100644 --- a/TransPyV/output/21fffba3315e81b4.deps.json +++ b/TransPyV/output/21fffba3315e81b4.deps.json @@ -1 +1 @@ -{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "memhub": "47775d5e50909338", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "lib.core.StubMerger": "9d90ff4bae201361", "StubMerger": "9d90ff4bae201361", "lib.core.IncludesScanner": "a1a7dbafa49abfd1", "IncludesScanner": "a1a7dbafa49abfd1", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "lib.core.Phase1": "c8d5323b1a4df063", "Phase1": "c8d5323b1a4df063", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "main": "f8e903a99e1d0a57", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file +{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.constants.config": "39daf57c7d4c5381", "config": "39daf57c7d4c5381", "lib.includes.t": "3a5e6e9aa900b2ca", "t": "3a5e6e9aa900b2ca", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "main": "950028de389b7a7b", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "lib.core.StubMerger": "b5d05dbd7fee36ef", "StubMerger": "b5d05dbd7fee36ef", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "lib.core.IncludesScanner": "bd82e3ca81546c76", "IncludesScanner": "bd82e3ca81546c76", "lib.includes.c": "be12ff5e6da1b6ee", "c": "be12ff5e6da1b6ee", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Phase1": "db7c4a8f09d02a17", "Phase1": "db7c4a8f09d02a17", "_dict": "e3e7b6de8d7d8b03", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file diff --git a/TransPyV/output/2998b8f78d7022bf.deps.json b/TransPyV/output/2998b8f78d7022bf.deps.json index 146d925..baa0708 100644 --- a/TransPyV/output/2998b8f78d7022bf.deps.json +++ b/TransPyV/output/2998b8f78d7022bf.deps.json @@ -1 +1 @@ -{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "memhub": "47775d5e50909338", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "lib.core.StubMerger": "9d90ff4bae201361", "StubMerger": "9d90ff4bae201361", "lib.core.IncludesScanner": "a1a7dbafa49abfd1", "IncludesScanner": "a1a7dbafa49abfd1", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "lib.core.Phase1": "c8d5323b1a4df063", "Phase1": "c8d5323b1a4df063", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "main": "f8e903a99e1d0a57", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file +{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.constants.config": "39daf57c7d4c5381", "config": "39daf57c7d4c5381", "lib.includes.t": "3a5e6e9aa900b2ca", "t": "3a5e6e9aa900b2ca", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "main": "950028de389b7a7b", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "lib.core.StubMerger": "b5d05dbd7fee36ef", "StubMerger": "b5d05dbd7fee36ef", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "lib.core.IncludesScanner": "bd82e3ca81546c76", "IncludesScanner": "bd82e3ca81546c76", "lib.includes.c": "be12ff5e6da1b6ee", "c": "be12ff5e6da1b6ee", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Phase1": "db7c4a8f09d02a17", "Phase1": "db7c4a8f09d02a17", "_dict": "e3e7b6de8d7d8b03", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file diff --git a/TransPyV/output/2ed380190e9df89e.deps.json b/TransPyV/output/2ed380190e9df89e.deps.json index 4fd366e..bc66bf9 100644 --- a/TransPyV/output/2ed380190e9df89e.deps.json +++ b/TransPyV/output/2ed380190e9df89e.deps.json @@ -1 +1 @@ -{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "memhub": "47775d5e50909338", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "lib.core.StubMerger": "9d90ff4bae201361", "StubMerger": "9d90ff4bae201361", "lib.core.IncludesScanner": "a1a7dbafa49abfd1", "IncludesScanner": "a1a7dbafa49abfd1", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "lib.core.Phase1": "c8d5323b1a4df063", "Phase1": "c8d5323b1a4df063", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "main": "f8e903a99e1d0a57", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file +{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.constants.config": "39daf57c7d4c5381", "config": "39daf57c7d4c5381", "lib.includes.t": "3a5e6e9aa900b2ca", "t": "3a5e6e9aa900b2ca", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "main": "950028de389b7a7b", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "lib.core.StubMerger": "b5d05dbd7fee36ef", "StubMerger": "b5d05dbd7fee36ef", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "lib.core.IncludesScanner": "bd82e3ca81546c76", "IncludesScanner": "bd82e3ca81546c76", "lib.includes.c": "be12ff5e6da1b6ee", "c": "be12ff5e6da1b6ee", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Phase1": "db7c4a8f09d02a17", "Phase1": "db7c4a8f09d02a17", "_dict": "e3e7b6de8d7d8b03", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file diff --git a/TransPyV/output/3d3edda4a4e6c08b.deps.json b/TransPyV/output/3d3edda4a4e6c08b.deps.json index d03c1b3..81fd534 100644 --- a/TransPyV/output/3d3edda4a4e6c08b.deps.json +++ b/TransPyV/output/3d3edda4a4e6c08b.deps.json @@ -1 +1 @@ -{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "memhub": "47775d5e50909338", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "lib.core.StubMerger": "9d90ff4bae201361", "StubMerger": "9d90ff4bae201361", "lib.core.IncludesScanner": "a1a7dbafa49abfd1", "IncludesScanner": "a1a7dbafa49abfd1", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "lib.core.Phase1": "c8d5323b1a4df063", "Phase1": "c8d5323b1a4df063", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "main": "f8e903a99e1d0a57", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file +{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.constants.config": "39daf57c7d4c5381", "config": "39daf57c7d4c5381", "lib.includes.t": "3a5e6e9aa900b2ca", "t": "3a5e6e9aa900b2ca", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "main": "950028de389b7a7b", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "lib.core.StubMerger": "b5d05dbd7fee36ef", "StubMerger": "b5d05dbd7fee36ef", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "lib.core.IncludesScanner": "bd82e3ca81546c76", "IncludesScanner": "bd82e3ca81546c76", "lib.includes.c": "be12ff5e6da1b6ee", "c": "be12ff5e6da1b6ee", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Phase1": "db7c4a8f09d02a17", "Phase1": "db7c4a8f09d02a17", "_dict": "e3e7b6de8d7d8b03", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file diff --git a/TransPyV/output/4020cac9bab5e9f1.deps.json b/TransPyV/output/4020cac9bab5e9f1.deps.json index 5244b3d..1e53314 100644 --- a/TransPyV/output/4020cac9bab5e9f1.deps.json +++ b/TransPyV/output/4020cac9bab5e9f1.deps.json @@ -1 +1 @@ -{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "memhub": "47775d5e50909338", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "lib.core.StubMerger": "9d90ff4bae201361", "StubMerger": "9d90ff4bae201361", "lib.core.IncludesScanner": "a1a7dbafa49abfd1", "IncludesScanner": "a1a7dbafa49abfd1", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "lib.core.Phase1": "c8d5323b1a4df063", "Phase1": "c8d5323b1a4df063", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "main": "f8e903a99e1d0a57", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file +{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.constants.config": "39daf57c7d4c5381", "config": "39daf57c7d4c5381", "lib.includes.t": "3a5e6e9aa900b2ca", "t": "3a5e6e9aa900b2ca", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "main": "950028de389b7a7b", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "lib.core.StubMerger": "b5d05dbd7fee36ef", "StubMerger": "b5d05dbd7fee36ef", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "lib.core.IncludesScanner": "bd82e3ca81546c76", "IncludesScanner": "bd82e3ca81546c76", "lib.includes.c": "be12ff5e6da1b6ee", "c": "be12ff5e6da1b6ee", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Phase1": "db7c4a8f09d02a17", "Phase1": "db7c4a8f09d02a17", "_dict": "e3e7b6de8d7d8b03", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file diff --git a/TransPyV/output/48fa8cc758d3826b.deps.json b/TransPyV/output/48fa8cc758d3826b.deps.json index ad62fd7..c45d275 100644 --- a/TransPyV/output/48fa8cc758d3826b.deps.json +++ b/TransPyV/output/48fa8cc758d3826b.deps.json @@ -1 +1 @@ -{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "memhub": "47775d5e50909338", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "lib.core.StubMerger": "9d90ff4bae201361", "StubMerger": "9d90ff4bae201361", "lib.core.IncludesScanner": "a1a7dbafa49abfd1", "IncludesScanner": "a1a7dbafa49abfd1", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "lib.core.Phase1": "c8d5323b1a4df063", "Phase1": "c8d5323b1a4df063", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "main": "f8e903a99e1d0a57", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file +{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.constants.config": "39daf57c7d4c5381", "config": "39daf57c7d4c5381", "lib.includes.t": "3a5e6e9aa900b2ca", "t": "3a5e6e9aa900b2ca", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "main": "950028de389b7a7b", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "lib.core.StubMerger": "b5d05dbd7fee36ef", "StubMerger": "b5d05dbd7fee36ef", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "lib.core.IncludesScanner": "bd82e3ca81546c76", "IncludesScanner": "bd82e3ca81546c76", "lib.includes.c": "be12ff5e6da1b6ee", "c": "be12ff5e6da1b6ee", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Phase1": "db7c4a8f09d02a17", "Phase1": "db7c4a8f09d02a17", "_dict": "e3e7b6de8d7d8b03", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file diff --git a/TransPyV/output/49cf633017627a4a.deps.json b/TransPyV/output/49cf633017627a4a.deps.json index 2c8a7ba..fe94351 100644 --- a/TransPyV/output/49cf633017627a4a.deps.json +++ b/TransPyV/output/49cf633017627a4a.deps.json @@ -1 +1 @@ -{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "memhub": "47775d5e50909338", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "lib.core.StubMerger": "9d90ff4bae201361", "StubMerger": "9d90ff4bae201361", "lib.core.IncludesScanner": "a1a7dbafa49abfd1", "IncludesScanner": "a1a7dbafa49abfd1", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "lib.core.Phase1": "c8d5323b1a4df063", "Phase1": "c8d5323b1a4df063", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "main": "f8e903a99e1d0a57", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file +{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.constants.config": "39daf57c7d4c5381", "config": "39daf57c7d4c5381", "lib.includes.t": "3a5e6e9aa900b2ca", "t": "3a5e6e9aa900b2ca", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "main": "950028de389b7a7b", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "lib.core.StubMerger": "b5d05dbd7fee36ef", "StubMerger": "b5d05dbd7fee36ef", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "lib.core.IncludesScanner": "bd82e3ca81546c76", "IncludesScanner": "bd82e3ca81546c76", "lib.includes.c": "be12ff5e6da1b6ee", "c": "be12ff5e6da1b6ee", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Phase1": "db7c4a8f09d02a17", "Phase1": "db7c4a8f09d02a17", "_dict": "e3e7b6de8d7d8b03", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file diff --git a/TransPyV/output/51f0144d6e8188d9.deps.json b/TransPyV/output/51f0144d6e8188d9.deps.json index 2fd051a..46a8a5d 100644 --- a/TransPyV/output/51f0144d6e8188d9.deps.json +++ b/TransPyV/output/51f0144d6e8188d9.deps.json @@ -1 +1 @@ -{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "memhub": "47775d5e50909338", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "lib.core.StubMerger": "9d90ff4bae201361", "StubMerger": "9d90ff4bae201361", "lib.core.IncludesScanner": "a1a7dbafa49abfd1", "IncludesScanner": "a1a7dbafa49abfd1", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "lib.core.Phase1": "c8d5323b1a4df063", "Phase1": "c8d5323b1a4df063", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "main": "f8e903a99e1d0a57", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file +{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.constants.config": "39daf57c7d4c5381", "config": "39daf57c7d4c5381", "lib.includes.t": "3a5e6e9aa900b2ca", "t": "3a5e6e9aa900b2ca", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "main": "950028de389b7a7b", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "lib.core.StubMerger": "b5d05dbd7fee36ef", "StubMerger": "b5d05dbd7fee36ef", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "lib.core.IncludesScanner": "bd82e3ca81546c76", "IncludesScanner": "bd82e3ca81546c76", "lib.includes.c": "be12ff5e6da1b6ee", "c": "be12ff5e6da1b6ee", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Phase1": "db7c4a8f09d02a17", "Phase1": "db7c4a8f09d02a17", "_dict": "e3e7b6de8d7d8b03", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file diff --git a/TransPyV/output/54014f6c53e9640b.deps.json b/TransPyV/output/54014f6c53e9640b.deps.json index 9436aa9..723eeb9 100644 --- a/TransPyV/output/54014f6c53e9640b.deps.json +++ b/TransPyV/output/54014f6c53e9640b.deps.json @@ -1 +1 @@ -{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "memhub": "47775d5e50909338", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "lib.core.StubMerger": "9d90ff4bae201361", "StubMerger": "9d90ff4bae201361", "lib.core.IncludesScanner": "a1a7dbafa49abfd1", "IncludesScanner": "a1a7dbafa49abfd1", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "lib.core.Phase1": "c8d5323b1a4df063", "Phase1": "c8d5323b1a4df063", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "main": "f8e903a99e1d0a57", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file +{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.constants.config": "39daf57c7d4c5381", "config": "39daf57c7d4c5381", "lib.includes.t": "3a5e6e9aa900b2ca", "t": "3a5e6e9aa900b2ca", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "main": "950028de389b7a7b", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "lib.core.StubMerger": "b5d05dbd7fee36ef", "StubMerger": "b5d05dbd7fee36ef", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "lib.core.IncludesScanner": "bd82e3ca81546c76", "IncludesScanner": "bd82e3ca81546c76", "lib.includes.c": "be12ff5e6da1b6ee", "c": "be12ff5e6da1b6ee", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Phase1": "db7c4a8f09d02a17", "Phase1": "db7c4a8f09d02a17", "_dict": "e3e7b6de8d7d8b03", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file diff --git a/TransPyV/output/541a090dde0cc1ba.deps.json b/TransPyV/output/541a090dde0cc1ba.deps.json index 6166822..3b57e15 100644 --- a/TransPyV/output/541a090dde0cc1ba.deps.json +++ b/TransPyV/output/541a090dde0cc1ba.deps.json @@ -1 +1 @@ -{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "memhub": "47775d5e50909338", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "lib.core.StubMerger": "9d90ff4bae201361", "StubMerger": "9d90ff4bae201361", "lib.core.IncludesScanner": "a1a7dbafa49abfd1", "IncludesScanner": "a1a7dbafa49abfd1", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "lib.core.Phase1": "c8d5323b1a4df063", "Phase1": "c8d5323b1a4df063", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "main": "f8e903a99e1d0a57", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file +{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.constants.config": "39daf57c7d4c5381", "config": "39daf57c7d4c5381", "lib.includes.t": "3a5e6e9aa900b2ca", "t": "3a5e6e9aa900b2ca", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "main": "950028de389b7a7b", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "lib.core.StubMerger": "b5d05dbd7fee36ef", "StubMerger": "b5d05dbd7fee36ef", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "lib.core.IncludesScanner": "bd82e3ca81546c76", "IncludesScanner": "bd82e3ca81546c76", "lib.includes.c": "be12ff5e6da1b6ee", "c": "be12ff5e6da1b6ee", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Phase1": "db7c4a8f09d02a17", "Phase1": "db7c4a8f09d02a17", "_dict": "e3e7b6de8d7d8b03", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file diff --git a/TransPyV/output/66de93aaeebc0601.deps.json b/TransPyV/output/66de93aaeebc0601.deps.json index d0c3e0a..689d095 100644 --- a/TransPyV/output/66de93aaeebc0601.deps.json +++ b/TransPyV/output/66de93aaeebc0601.deps.json @@ -1 +1 @@ -{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "memhub": "47775d5e50909338", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "lib.core.StubMerger": "9d90ff4bae201361", "StubMerger": "9d90ff4bae201361", "lib.core.IncludesScanner": "a1a7dbafa49abfd1", "IncludesScanner": "a1a7dbafa49abfd1", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "lib.core.Phase1": "c8d5323b1a4df063", "Phase1": "c8d5323b1a4df063", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "main": "f8e903a99e1d0a57", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file +{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.constants.config": "39daf57c7d4c5381", "config": "39daf57c7d4c5381", "lib.includes.t": "3a5e6e9aa900b2ca", "t": "3a5e6e9aa900b2ca", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "main": "950028de389b7a7b", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "lib.core.StubMerger": "b5d05dbd7fee36ef", "StubMerger": "b5d05dbd7fee36ef", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "lib.core.IncludesScanner": "bd82e3ca81546c76", "IncludesScanner": "bd82e3ca81546c76", "lib.includes.c": "be12ff5e6da1b6ee", "c": "be12ff5e6da1b6ee", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Phase1": "db7c4a8f09d02a17", "Phase1": "db7c4a8f09d02a17", "_dict": "e3e7b6de8d7d8b03", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file diff --git a/TransPyV/output/78bbe886bbe5ca8f.deps.json b/TransPyV/output/78bbe886bbe5ca8f.deps.json index 928807c..be4fbdb 100644 --- a/TransPyV/output/78bbe886bbe5ca8f.deps.json +++ b/TransPyV/output/78bbe886bbe5ca8f.deps.json @@ -1 +1 @@ -{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "memhub": "47775d5e50909338", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "lib.core.StubMerger": "9d90ff4bae201361", "StubMerger": "9d90ff4bae201361", "lib.core.IncludesScanner": "a1a7dbafa49abfd1", "IncludesScanner": "a1a7dbafa49abfd1", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "lib.core.Phase1": "c8d5323b1a4df063", "Phase1": "c8d5323b1a4df063", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "main": "f8e903a99e1d0a57", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file +{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.constants.config": "39daf57c7d4c5381", "config": "39daf57c7d4c5381", "lib.includes.t": "3a5e6e9aa900b2ca", "t": "3a5e6e9aa900b2ca", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "main": "950028de389b7a7b", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "lib.core.StubMerger": "b5d05dbd7fee36ef", "StubMerger": "b5d05dbd7fee36ef", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "lib.core.IncludesScanner": "bd82e3ca81546c76", "IncludesScanner": "bd82e3ca81546c76", "lib.includes.c": "be12ff5e6da1b6ee", "c": "be12ff5e6da1b6ee", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Phase1": "db7c4a8f09d02a17", "Phase1": "db7c4a8f09d02a17", "_dict": "e3e7b6de8d7d8b03", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file diff --git a/TransPyV/output/7e260c14d2712119.deps.json b/TransPyV/output/7e260c14d2712119.deps.json index 74b3bc6..e573b75 100644 --- a/TransPyV/output/7e260c14d2712119.deps.json +++ b/TransPyV/output/7e260c14d2712119.deps.json @@ -1 +1 @@ -{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "memhub": "47775d5e50909338", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "lib.core.StubMerger": "9d90ff4bae201361", "StubMerger": "9d90ff4bae201361", "lib.core.IncludesScanner": "a1a7dbafa49abfd1", "IncludesScanner": "a1a7dbafa49abfd1", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "lib.core.Phase1": "c8d5323b1a4df063", "Phase1": "c8d5323b1a4df063", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "main": "f8e903a99e1d0a57", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file +{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.constants.config": "39daf57c7d4c5381", "config": "39daf57c7d4c5381", "lib.includes.t": "3a5e6e9aa900b2ca", "t": "3a5e6e9aa900b2ca", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "main": "950028de389b7a7b", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "lib.core.StubMerger": "b5d05dbd7fee36ef", "StubMerger": "b5d05dbd7fee36ef", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "lib.core.IncludesScanner": "bd82e3ca81546c76", "IncludesScanner": "bd82e3ca81546c76", "lib.includes.c": "be12ff5e6da1b6ee", "c": "be12ff5e6da1b6ee", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Phase1": "db7c4a8f09d02a17", "Phase1": "db7c4a8f09d02a17", "_dict": "e3e7b6de8d7d8b03", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file diff --git a/TransPyV/output/81eb28ba912467a6.deps.json b/TransPyV/output/81eb28ba912467a6.deps.json index 383e7cb..54492a5 100644 --- a/TransPyV/output/81eb28ba912467a6.deps.json +++ b/TransPyV/output/81eb28ba912467a6.deps.json @@ -1 +1 @@ -{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "memhub": "47775d5e50909338", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "lib.core.StubMerger": "9d90ff4bae201361", "StubMerger": "9d90ff4bae201361", "lib.core.IncludesScanner": "a1a7dbafa49abfd1", "IncludesScanner": "a1a7dbafa49abfd1", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "lib.core.Phase1": "c8d5323b1a4df063", "Phase1": "c8d5323b1a4df063", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "main": "f8e903a99e1d0a57", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file +{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.constants.config": "39daf57c7d4c5381", "config": "39daf57c7d4c5381", "lib.includes.t": "3a5e6e9aa900b2ca", "t": "3a5e6e9aa900b2ca", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "main": "950028de389b7a7b", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "lib.core.StubMerger": "b5d05dbd7fee36ef", "StubMerger": "b5d05dbd7fee36ef", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "lib.core.IncludesScanner": "bd82e3ca81546c76", "IncludesScanner": "bd82e3ca81546c76", "lib.includes.c": "be12ff5e6da1b6ee", "c": "be12ff5e6da1b6ee", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Phase1": "db7c4a8f09d02a17", "Phase1": "db7c4a8f09d02a17", "_dict": "e3e7b6de8d7d8b03", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file diff --git a/TransPyV/output/83ba314b4637eec9.deps.json b/TransPyV/output/83ba314b4637eec9.deps.json index 8b3ee59..add1355 100644 --- a/TransPyV/output/83ba314b4637eec9.deps.json +++ b/TransPyV/output/83ba314b4637eec9.deps.json @@ -1 +1 @@ -{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "memhub": "47775d5e50909338", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "lib.core.StubMerger": "9d90ff4bae201361", "StubMerger": "9d90ff4bae201361", "lib.core.IncludesScanner": "a1a7dbafa49abfd1", "IncludesScanner": "a1a7dbafa49abfd1", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "lib.core.Phase1": "c8d5323b1a4df063", "Phase1": "c8d5323b1a4df063", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "main": "f8e903a99e1d0a57", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file +{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.constants.config": "39daf57c7d4c5381", "config": "39daf57c7d4c5381", "lib.includes.t": "3a5e6e9aa900b2ca", "t": "3a5e6e9aa900b2ca", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "main": "950028de389b7a7b", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "lib.core.StubMerger": "b5d05dbd7fee36ef", "StubMerger": "b5d05dbd7fee36ef", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "lib.core.IncludesScanner": "bd82e3ca81546c76", "IncludesScanner": "bd82e3ca81546c76", "lib.includes.c": "be12ff5e6da1b6ee", "c": "be12ff5e6da1b6ee", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Phase1": "db7c4a8f09d02a17", "Phase1": "db7c4a8f09d02a17", "_dict": "e3e7b6de8d7d8b03", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file diff --git a/TransPyV/output/888ea5bd6ab516ae.deps.json b/TransPyV/output/888ea5bd6ab516ae.deps.json index 69d1a20..1840a76 100644 --- a/TransPyV/output/888ea5bd6ab516ae.deps.json +++ b/TransPyV/output/888ea5bd6ab516ae.deps.json @@ -1 +1 @@ -{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "memhub": "47775d5e50909338", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "lib.core.StubMerger": "9d90ff4bae201361", "StubMerger": "9d90ff4bae201361", "lib.core.IncludesScanner": "a1a7dbafa49abfd1", "IncludesScanner": "a1a7dbafa49abfd1", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "lib.core.Phase1": "c8d5323b1a4df063", "Phase1": "c8d5323b1a4df063", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "main": "f8e903a99e1d0a57", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file +{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.constants.config": "39daf57c7d4c5381", "config": "39daf57c7d4c5381", "lib.includes.t": "3a5e6e9aa900b2ca", "t": "3a5e6e9aa900b2ca", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "main": "950028de389b7a7b", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "lib.core.StubMerger": "b5d05dbd7fee36ef", "StubMerger": "b5d05dbd7fee36ef", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "lib.core.IncludesScanner": "bd82e3ca81546c76", "IncludesScanner": "bd82e3ca81546c76", "lib.includes.c": "be12ff5e6da1b6ee", "c": "be12ff5e6da1b6ee", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Phase1": "db7c4a8f09d02a17", "Phase1": "db7c4a8f09d02a17", "_dict": "e3e7b6de8d7d8b03", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file diff --git a/TransPyV/output/8f12094c840be06a.deps.json b/TransPyV/output/8f12094c840be06a.deps.json index 7d39112..eb000e4 100644 --- a/TransPyV/output/8f12094c840be06a.deps.json +++ b/TransPyV/output/8f12094c840be06a.deps.json @@ -1 +1 @@ -{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "memhub": "47775d5e50909338", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "lib.core.StubMerger": "9d90ff4bae201361", "StubMerger": "9d90ff4bae201361", "lib.core.IncludesScanner": "a1a7dbafa49abfd1", "IncludesScanner": "a1a7dbafa49abfd1", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "lib.core.Phase1": "c8d5323b1a4df063", "Phase1": "c8d5323b1a4df063", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "main": "f8e903a99e1d0a57", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file +{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.constants.config": "39daf57c7d4c5381", "config": "39daf57c7d4c5381", "lib.includes.t": "3a5e6e9aa900b2ca", "t": "3a5e6e9aa900b2ca", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "main": "950028de389b7a7b", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "lib.core.StubMerger": "b5d05dbd7fee36ef", "StubMerger": "b5d05dbd7fee36ef", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "lib.core.IncludesScanner": "bd82e3ca81546c76", "IncludesScanner": "bd82e3ca81546c76", "lib.includes.c": "be12ff5e6da1b6ee", "c": "be12ff5e6da1b6ee", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Phase1": "db7c4a8f09d02a17", "Phase1": "db7c4a8f09d02a17", "_dict": "e3e7b6de8d7d8b03", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file diff --git a/TransPyV/output/ae0cc890f657076d.deps.json b/TransPyV/output/ae0cc890f657076d.deps.json index 882d390..49ffd8c 100644 --- a/TransPyV/output/ae0cc890f657076d.deps.json +++ b/TransPyV/output/ae0cc890f657076d.deps.json @@ -1 +1 @@ -{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "memhub": "47775d5e50909338", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "lib.core.StubMerger": "9d90ff4bae201361", "StubMerger": "9d90ff4bae201361", "lib.core.IncludesScanner": "a1a7dbafa49abfd1", "IncludesScanner": "a1a7dbafa49abfd1", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "lib.core.Phase1": "c8d5323b1a4df063", "Phase1": "c8d5323b1a4df063", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "main": "f8e903a99e1d0a57", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file +{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.constants.config": "39daf57c7d4c5381", "config": "39daf57c7d4c5381", "lib.includes.t": "3a5e6e9aa900b2ca", "t": "3a5e6e9aa900b2ca", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "main": "950028de389b7a7b", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "lib.core.StubMerger": "b5d05dbd7fee36ef", "StubMerger": "b5d05dbd7fee36ef", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "lib.core.IncludesScanner": "bd82e3ca81546c76", "IncludesScanner": "bd82e3ca81546c76", "lib.includes.c": "be12ff5e6da1b6ee", "c": "be12ff5e6da1b6ee", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Phase1": "db7c4a8f09d02a17", "Phase1": "db7c4a8f09d02a17", "_dict": "e3e7b6de8d7d8b03", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file diff --git a/TransPyV/output/af9484a65085bf4b.deps.json b/TransPyV/output/af9484a65085bf4b.deps.json index 9449288..e197e24 100644 --- a/TransPyV/output/af9484a65085bf4b.deps.json +++ b/TransPyV/output/af9484a65085bf4b.deps.json @@ -1 +1 @@ -{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "memhub": "47775d5e50909338", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "lib.core.StubMerger": "9d90ff4bae201361", "StubMerger": "9d90ff4bae201361", "lib.core.IncludesScanner": "a1a7dbafa49abfd1", "IncludesScanner": "a1a7dbafa49abfd1", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "lib.core.Phase1": "c8d5323b1a4df063", "Phase1": "c8d5323b1a4df063", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "main": "f8e903a99e1d0a57", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file +{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.constants.config": "39daf57c7d4c5381", "config": "39daf57c7d4c5381", "lib.includes.t": "3a5e6e9aa900b2ca", "t": "3a5e6e9aa900b2ca", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "main": "950028de389b7a7b", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "lib.core.StubMerger": "b5d05dbd7fee36ef", "StubMerger": "b5d05dbd7fee36ef", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "lib.core.IncludesScanner": "bd82e3ca81546c76", "IncludesScanner": "bd82e3ca81546c76", "lib.includes.c": "be12ff5e6da1b6ee", "c": "be12ff5e6da1b6ee", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Phase1": "db7c4a8f09d02a17", "Phase1": "db7c4a8f09d02a17", "_dict": "e3e7b6de8d7d8b03", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file diff --git a/TransPyV/output/b29b80b6106e4be7.deps.json b/TransPyV/output/b29b80b6106e4be7.deps.json index 0735fff..be65774 100644 --- a/TransPyV/output/b29b80b6106e4be7.deps.json +++ b/TransPyV/output/b29b80b6106e4be7.deps.json @@ -1 +1 @@ -{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "memhub": "47775d5e50909338", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "lib.core.StubMerger": "9d90ff4bae201361", "StubMerger": "9d90ff4bae201361", "lib.core.IncludesScanner": "a1a7dbafa49abfd1", "IncludesScanner": "a1a7dbafa49abfd1", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "lib.core.Phase1": "c8d5323b1a4df063", "Phase1": "c8d5323b1a4df063", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "main": "f8e903a99e1d0a57", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file +{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.constants.config": "39daf57c7d4c5381", "config": "39daf57c7d4c5381", "lib.includes.t": "3a5e6e9aa900b2ca", "t": "3a5e6e9aa900b2ca", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "main": "950028de389b7a7b", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "lib.core.StubMerger": "b5d05dbd7fee36ef", "StubMerger": "b5d05dbd7fee36ef", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "lib.core.IncludesScanner": "bd82e3ca81546c76", "IncludesScanner": "bd82e3ca81546c76", "lib.includes.c": "be12ff5e6da1b6ee", "c": "be12ff5e6da1b6ee", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Phase1": "db7c4a8f09d02a17", "Phase1": "db7c4a8f09d02a17", "_dict": "e3e7b6de8d7d8b03", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file diff --git a/TransPyV/output/c4f2d483ec0f4db5.deps.json b/TransPyV/output/c4f2d483ec0f4db5.deps.json index 233bfd0..9b5a555 100644 --- a/TransPyV/output/c4f2d483ec0f4db5.deps.json +++ b/TransPyV/output/c4f2d483ec0f4db5.deps.json @@ -1 +1 @@ -{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "memhub": "47775d5e50909338", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "lib.core.StubMerger": "9d90ff4bae201361", "StubMerger": "9d90ff4bae201361", "lib.core.IncludesScanner": "a1a7dbafa49abfd1", "IncludesScanner": "a1a7dbafa49abfd1", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "lib.core.Phase1": "c8d5323b1a4df063", "Phase1": "c8d5323b1a4df063", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "main": "f8e903a99e1d0a57", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file +{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.constants.config": "39daf57c7d4c5381", "config": "39daf57c7d4c5381", "lib.includes.t": "3a5e6e9aa900b2ca", "t": "3a5e6e9aa900b2ca", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "main": "950028de389b7a7b", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "lib.core.StubMerger": "b5d05dbd7fee36ef", "StubMerger": "b5d05dbd7fee36ef", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "lib.core.IncludesScanner": "bd82e3ca81546c76", "IncludesScanner": "bd82e3ca81546c76", "lib.includes.c": "be12ff5e6da1b6ee", "c": "be12ff5e6da1b6ee", "viperlib": "c3b259b4059f8668", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Phase1": "db7c4a8f09d02a17", "Phase1": "db7c4a8f09d02a17", "_dict": "e3e7b6de8d7d8b03", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file diff --git a/TransPyV/output/d1599ecbac5b6586.deps.json b/TransPyV/output/d1599ecbac5b6586.deps.json index 95b3286..af3ba41 100644 --- a/TransPyV/output/d1599ecbac5b6586.deps.json +++ b/TransPyV/output/d1599ecbac5b6586.deps.json @@ -1 +1 @@ -{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "memhub": "47775d5e50909338", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "lib.core.StubMerger": "9d90ff4bae201361", "StubMerger": "9d90ff4bae201361", "lib.core.IncludesScanner": "a1a7dbafa49abfd1", "IncludesScanner": "a1a7dbafa49abfd1", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "lib.core.Phase1": "c8d5323b1a4df063", "Phase1": "c8d5323b1a4df063", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "main": "f8e903a99e1d0a57", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file +{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.constants.config": "39daf57c7d4c5381", "config": "39daf57c7d4c5381", "lib.includes.t": "3a5e6e9aa900b2ca", "t": "3a5e6e9aa900b2ca", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "main": "950028de389b7a7b", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "lib.core.StubMerger": "b5d05dbd7fee36ef", "StubMerger": "b5d05dbd7fee36ef", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "lib.core.IncludesScanner": "bd82e3ca81546c76", "IncludesScanner": "bd82e3ca81546c76", "lib.includes.c": "be12ff5e6da1b6ee", "c": "be12ff5e6da1b6ee", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Phase1": "db7c4a8f09d02a17", "Phase1": "db7c4a8f09d02a17", "_dict": "e3e7b6de8d7d8b03", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file diff --git a/TransPyV/output/d9322f0db660edd8.deps.json b/TransPyV/output/d9322f0db660edd8.deps.json index bdc6d1d..a5c880e 100644 --- a/TransPyV/output/d9322f0db660edd8.deps.json +++ b/TransPyV/output/d9322f0db660edd8.deps.json @@ -1 +1 @@ -{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "memhub": "47775d5e50909338", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "lib.core.StubMerger": "9d90ff4bae201361", "StubMerger": "9d90ff4bae201361", "lib.core.IncludesScanner": "a1a7dbafa49abfd1", "IncludesScanner": "a1a7dbafa49abfd1", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "lib.core.Phase1": "c8d5323b1a4df063", "Phase1": "c8d5323b1a4df063", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "main": "f8e903a99e1d0a57", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file +{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.constants.config": "39daf57c7d4c5381", "config": "39daf57c7d4c5381", "lib.includes.t": "3a5e6e9aa900b2ca", "t": "3a5e6e9aa900b2ca", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "main": "950028de389b7a7b", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "lib.core.StubMerger": "b5d05dbd7fee36ef", "StubMerger": "b5d05dbd7fee36ef", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "lib.core.IncludesScanner": "bd82e3ca81546c76", "IncludesScanner": "bd82e3ca81546c76", "lib.includes.c": "be12ff5e6da1b6ee", "c": "be12ff5e6da1b6ee", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Phase1": "db7c4a8f09d02a17", "Phase1": "db7c4a8f09d02a17", "_dict": "e3e7b6de8d7d8b03", "lib.core.Handles.HandlesEnum": "e5be27ae4fe7ce04", "HandlesEnum": "e5be27ae4fe7ce04", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file diff --git a/TransPyV/output/e5be27ae4fe7ce04.deps.json b/TransPyV/output/e5be27ae4fe7ce04.deps.json index 7f32ed2..d336656 100644 --- a/TransPyV/output/e5be27ae4fe7ce04.deps.json +++ b/TransPyV/output/e5be27ae4fe7ce04.deps.json @@ -1 +1 @@ -{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "memhub": "47775d5e50909338", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "lib.core.StubMerger": "9d90ff4bae201361", "StubMerger": "9d90ff4bae201361", "lib.core.IncludesScanner": "a1a7dbafa49abfd1", "IncludesScanner": "a1a7dbafa49abfd1", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "lib.core.Phase1": "c8d5323b1a4df063", "Phase1": "c8d5323b1a4df063", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "main": "f8e903a99e1d0a57", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file +{"lib.core.Handles.HandlesMain": "001c1416e7a7dc50", "HandlesMain": "001c1416e7a7dc50", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "lib.core.Handles.HandlesVar": "02885f6f134079c2", "HandlesVar": "02885f6f134079c2", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "lib.core.Handles.HandlesExprOps": "07a8c82a8ca2be90", "HandlesExprOps": "07a8c82a8ca2be90", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "lib.core.Handles.HandlesType": "0c56128647a0b845", "HandlesType": "0c56128647a0b845", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "lib.core.VLogger": "21fffba3315e81b4", "VLogger": "21fffba3315e81b4", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "lib.core.Handles.HandlesTranslator": "2998b8f78d7022bf", "HandlesTranslator": "2998b8f78d7022bf", "linkedlist": "2d39c6c7d3557b3e", "subprocess": "2da636c61863c815", "lib.core.Handles.HandlesAnnAssign": "2ed380190e9df89e", "HandlesAnnAssign": "2ed380190e9df89e", "ast.__init__": "34548789d646f432", "__init__": "96837bcc64032444", "ast": "34548789d646f432", "lib.constants.config": "39daf57c7d4c5381", "config": "39daf57c7d4c5381", "lib.includes.t": "3a5e6e9aa900b2ca", "t": "3a5e6e9aa900b2ca", "lib.core.Handles.HandlesAssign": "3d3edda4a4e6c08b", "HandlesAssign": "3d3edda4a4e6c08b", "lib.core.Handles.HandlesFunctions": "4020cac9bab5e9f1", "HandlesFunctions": "4020cac9bab5e9f1", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "lib.core.Handles.HandlesFor": "48fa8cc758d3826b", "HandlesFor": "48fa8cc758d3826b", "lib.Projectrans.Config": "49cf633017627a4a", "Config": "49cf633017627a4a", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.Handles.HandlesWhile": "51f0144d6e8188d9", "HandlesWhile": "51f0144d6e8188d9", "lib.core.Handles.HandlesStruct": "54014f6c53e9640b", "HandlesStruct": "54014f6c53e9640b", "lib.core.Handles.HandlesAugAssign": "541a090dde0cc1ba", "HandlesAugAssign": "541a090dde0cc1ba", "json.__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "lib.core.Handles.HandlesIf": "66de93aaeebc0601", "HandlesIf": "66de93aaeebc0601", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "memhub": "754640ce30cfebcc", "lib.core.Handles.HandlesImports": "78bbe886bbe5ca8f", "HandlesImports": "78bbe886bbe5ca8f", "lib.core.Phase2": "7e260c14d2712119", "Phase2": "7e260c14d2712119", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesBase": "83ba314b4637eec9", "HandlesBase": "83ba314b4637eec9", "lib.Projectrans.Utils": "888ea5bd6ab516ae", "Utils": "888ea5bd6ab516ae", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "lib.__init__": "8f12094c840be06a", "lib": "8f12094c840be06a", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "string": "9474791561654346", "main": "950028de389b7a7b", "llvmlite.__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "argparse": "aba439b7882ad9d6", "lib.core.Handles.HandlesExpr": "ae0cc890f657076d", "HandlesExpr": "ae0cc890f657076d", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "lib.core.Handles.HandlesExprCall": "b29b80b6106e4be7", "HandlesExprCall": "b29b80b6106e4be7", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "lib.core.StubMerger": "b5d05dbd7fee36ef", "StubMerger": "b5d05dbd7fee36ef", "hashtable": "b8c66c8ff44eb874", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "lib.core.IncludesScanner": "bd82e3ca81546c76", "IncludesScanner": "bd82e3ca81546c76", "lib.includes.c": "be12ff5e6da1b6ee", "c": "be12ff5e6da1b6ee", "viperlib": "c3b259b4059f8668", "lib.core.Handles.HandlesClassDef": "c4f2d483ec0f4db5", "HandlesClassDef": "c4f2d483ec0f4db5", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "lib.core.BuildPipeline": "d1599ecbac5b6586", "BuildPipeline": "d1599ecbac5b6586", "lib.core.Handles.HandlesReturn": "d9322f0db660edd8", "HandlesReturn": "d9322f0db660edd8", "lib.core.Phase1": "db7c4a8f09d02a17", "Phase1": "db7c4a8f09d02a17", "_dict": "e3e7b6de8d7d8b03", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file diff --git a/TransPyV/temp/_phase1_manifest.json b/TransPyV/temp/_phase1_manifest.json index 53a9b63..cdc0f68 100644 --- a/TransPyV/temp/_phase1_manifest.json +++ b/TransPyV/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\Projectrans\\Config.py": {"sha1": "49cf633017627a4a", "mtime": 1784346259.5164392, "size": 10284}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\Projectrans\\Utils.py": {"sha1": "888ea5bd6ab516ae", "mtime": 1783869136.4439158, "size": 4066}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\__init__.py": {"sha1": "8f12094c840be06a", "mtime": 1783176502.323163, "size": 752}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\BuildPipeline.py": {"sha1": "d1599ecbac5b6586", "mtime": 1784365349.9071016, "size": 18044}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesAnnAssign.py": {"sha1": "2ed380190e9df89e", "mtime": 1784355565.0405374, "size": 12796}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesAssign.py": {"sha1": "3d3edda4a4e6c08b", "mtime": 1784358988.7719295, "size": 12619}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesAugAssign.py": {"sha1": "541a090dde0cc1ba", "mtime": 1784291303.692474, "size": 10160}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesBase.py": {"sha1": "83ba314b4637eec9", "mtime": 1783864585.7948608, "size": 8746}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesBody.py": {"sha1": "81eb28ba912467a6", "mtime": 1784299229.4847765, "size": 8538}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesClassDef.py": {"sha1": "c4f2d483ec0f4db5", "mtime": 1784352269.421058, "size": 95797}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesEnum.py": {"sha1": "e5be27ae4fe7ce04", "mtime": 1783864613.5248196, "size": 8197}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesExpr.py": {"sha1": "ae0cc890f657076d", "mtime": 1784360370.033992, "size": 68807}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesExprCall.py": {"sha1": "b29b80b6106e4be7", "mtime": 1784366491.736505, "size": 190769}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesExprOps.py": {"sha1": "07a8c82a8ca2be90", "mtime": 1783920713.4815462, "size": 12706}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesFor.py": {"sha1": "48fa8cc758d3826b", "mtime": 1784360589.0914645, "size": 16438}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesFunctions.py": {"sha1": "4020cac9bab5e9f1", "mtime": 1784359369.6672971, "size": 42350}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesIf.py": {"sha1": "66de93aaeebc0601", "mtime": 1784354259.917369, "size": 5211}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesImports.py": {"sha1": "78bbe886bbe5ca8f", "mtime": 1784365186.9951043, "size": 15989}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesMain.py": {"sha1": "001c1416e7a7dc50", "mtime": 1784356333.922174, "size": 13209}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesNonlocal.py": {"sha1": "af9484a65085bf4b", "mtime": 1783859826.2073808, "size": 5336}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesReturn.py": {"sha1": "d9322f0db660edd8", "mtime": 1784309054.0918405, "size": 4530}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesStruct.py": {"sha1": "54014f6c53e9640b", "mtime": 1784300400.6293957, "size": 39050}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesTranslator.py": {"sha1": "2998b8f78d7022bf", "mtime": 1784365111.9064653, "size": 17135}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesType.py": {"sha1": "0c56128647a0b845", "mtime": 1784355136.3688684, "size": 51854}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesVar.py": {"sha1": "02885f6f134079c2", "mtime": 1784275582.3904912, "size": 13778}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesWhile.py": {"sha1": "51f0144d6e8188d9", "mtime": 1784354259.2134998, "size": 4787}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\IncludesScanner.py": {"sha1": "a1a7dbafa49abfd1", "mtime": 1784515500.535767, "size": 13256}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Phase1.py": {"sha1": "c8d5323b1a4df063", "mtime": 1784516210.3014371, "size": 22879}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Phase2.py": {"sha1": "7e260c14d2712119", "mtime": 1784365393.243475, "size": 35884}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\StubMerger.py": {"sha1": "9d90ff4bae201361", "mtime": 1784517053.6225822, "size": 67791}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\VLogger.py": {"sha1": "21fffba3315e81b4", "mtime": 1783176437.4701056, "size": 6091}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\main.py": {"sha1": "f8e903a99e1d0a57", "mtime": 1784515751.9807196, "size": 23897}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\_list.py": {"sha1": "668790e6c9efdbae", "mtime": 1784451276.719043, "size": 3219}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\argparse.py": {"sha1": "aba439b7882ad9d6", "mtime": 1783072446.3366802, "size": 16968}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\__init__.py": {"sha1": "34548789d646f432", "mtime": 1784102404.6307266, "size": 3409}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\astaux.py": {"sha1": "4337fb260448bbe2", "mtime": 1784006094.7981195, "size": 11489}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\base.py": {"sha1": "5dab8cb390496d22", "mtime": 1784197698.3282094, "size": 14966}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\exprs.py": {"sha1": "47767b5026a8ee15", "mtime": 1783239758.809719, "size": 40615}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\lexer.py": {"sha1": "0c212981c180e7fb", "mtime": 1783400609.908198, "size": 23535}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\match.py": {"sha1": "4dd6b3f1427d1cc5", "mtime": 1782961799.8492737, "size": 12309}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\parser.py": {"sha1": "ee52c08239684346", "mtime": 1784102405.1933146, "size": 85445}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\stmts.py": {"sha1": "657e182b27c2a022", "mtime": 1783929993.759902, "size": 37926}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\tokens.py": {"sha1": "b547ac4f380bddb6", "mtime": 1783165480.469121, "size": 13722}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__init__.py": {"sha1": "96837bcc64032444", "mtime": 1777902641.540433, "size": 186}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__md5.py": {"sha1": "19f8024d10c828e8", "mtime": 1784356818.7075372, "size": 5847}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__sha1.py": {"sha1": "0df65b8ed15664b0", "mtime": 1784356827.656474, "size": 4516}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__sha256.py": {"sha1": "c9d54a4158f7f5a8", "mtime": 1782266203.9352357, "size": 5332}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__sha512.py": {"sha1": "6ff26590374ae6fc", "mtime": 1782266223.3380039, "size": 7162}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashtable.py": {"sha1": "b8c66c8ff44eb874", "mtime": 1782826619.490043, "size": 9385}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\json\\__init__.py": {"sha1": "57288496f7c2d1ad", "mtime": 1783239811.8873823, "size": 7653}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\json\\__parser.py": {"sha1": "240a9a4157959a9f", "mtime": 1782826918.100951, "size": 7517}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\json\\__writer.py": {"sha1": "20cd49775c100a38", "mtime": 1782826901.8906734, "size": 3784}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\linkedlist.py": {"sha1": "2d39c6c7d3557b3e", "mtime": 1782895405.2191627, "size": 16032}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__init__.py": {"sha1": "95394ca8da0f655a", "mtime": 1784089002.4168732, "size": 16338}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__builder.py": {"sha1": "946e087da91aaada", "mtime": 1784387312.9523027, "size": 48840}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__function.py": {"sha1": "89b3965176cd2407", "mtime": 1784456620.4280825, "size": 17010}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__module.py": {"sha1": "21a7fcfc665f75ef", "mtime": 1784216086.0677392, "size": 20058}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__types.py": {"sha1": "15f1ded02f3aa5bc", "mtime": 1784387290.644663, "size": 17996}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__values.py": {"sha1": "f9e36e2cd6fa659f", "mtime": 1784387299.9652681, "size": 6739}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__verify.py": {"sha1": "6b3bc463fd044545", "mtime": 1784387320.0367622, "size": 14751}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "47775d5e50909338", "mtime": 1784464283.860502, "size": 19750}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\platmacro.py": {"sha1": "93c1d18e35d188d6", "mtime": 1781237231.03366, "size": 1422}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\posix.py": {"sha1": "6503c97dde0c79c4", "mtime": 1783064077.6376991, "size": 10386}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.py": {"sha1": "71e0a3ffcb3ebfad", "mtime": 1781258888.113146, "size": 277}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784464295.903657, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784387475.6951904, "size": 10395}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\subprocess.py": {"sha1": "2da636c61863c815", "mtime": 1783847277.4569364, "size": 7627}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\sys.py": {"sha1": "b5a965302cded36b", "mtime": 1783569641.07535, "size": 5509}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.py": {"sha1": "c3b259b4059f8668", "mtime": 1784472292.0762527, "size": 56772}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\fileio.py": {"sha1": "0035c95a18d4f8e8", "mtime": 1783747022.686592, "size": 14147}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32file.py": {"sha1": "f6b51804a0ba8ff0", "mtime": 1782531158.744144, "size": 8424}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32memory.py": {"sha1": "72e2d5ccb7cedcf1", "mtime": 1781200703.5389092, "size": 3142}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32process.py": {"sha1": "067c78e9f121dce3", "mtime": 1781200703.5409546, "size": 4802}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32sync.py": {"sha1": "06f53cc594b4ac6c", "mtime": 1782297500.2581685, "size": 4726}} \ No newline at end of file +{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\Projectrans\\Config.py": {"sha1": "49cf633017627a4a", "mtime": 1784566611.844975, "size": 10284}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\Projectrans\\Utils.py": {"sha1": "888ea5bd6ab516ae", "mtime": 1784540868.027279, "size": 4066}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\__init__.py": {"sha1": "8f12094c840be06a", "mtime": 1784540868.0297859, "size": 752}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\constants\\config.py": {"sha1": "39daf57c7d4c5381", "mtime": 1781880718.1867383, "size": 1322}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\BuildPipeline.py": {"sha1": "d1599ecbac5b6586", "mtime": 1784566611.8356757, "size": 18044}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesAnnAssign.py": {"sha1": "2ed380190e9df89e", "mtime": 1784566611.8398514, "size": 12796}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesAssign.py": {"sha1": "3d3edda4a4e6c08b", "mtime": 1784566611.8469868, "size": 12619}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesAugAssign.py": {"sha1": "541a090dde0cc1ba", "mtime": 1784566611.8403623, "size": 10160}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesBase.py": {"sha1": "83ba314b4637eec9", "mtime": 1784540868.0374627, "size": 8746}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesBody.py": {"sha1": "81eb28ba912467a6", "mtime": 1784566611.8626723, "size": 8538}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesClassDef.py": {"sha1": "c4f2d483ec0f4db5", "mtime": 1784566611.8356757, "size": 95797}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesEnum.py": {"sha1": "e5be27ae4fe7ce04", "mtime": 1784540868.0423465, "size": 8197}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesExpr.py": {"sha1": "ae0cc890f657076d", "mtime": 1784566611.8550787, "size": 68807}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesExprCall.py": {"sha1": "b29b80b6106e4be7", "mtime": 1784566611.8376899, "size": 190769}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesExprOps.py": {"sha1": "07a8c82a8ca2be90", "mtime": 1784540868.0474122, "size": 12706}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesFor.py": {"sha1": "48fa8cc758d3826b", "mtime": 1784566611.8366883, "size": 16438}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesFunctions.py": {"sha1": "4020cac9bab5e9f1", "mtime": 1784566611.8560882, "size": 42350}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesIf.py": {"sha1": "66de93aaeebc0601", "mtime": 1784566611.8515344, "size": 5211}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesImports.py": {"sha1": "78bbe886bbe5ca8f", "mtime": 1784566611.8280091, "size": 15989}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesMain.py": {"sha1": "001c1416e7a7dc50", "mtime": 1784566611.8580873, "size": 13209}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesNonlocal.py": {"sha1": "af9484a65085bf4b", "mtime": 1784540868.0555332, "size": 5336}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesReturn.py": {"sha1": "d9322f0db660edd8", "mtime": 1784566611.8606246, "size": 4530}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesStruct.py": {"sha1": "54014f6c53e9640b", "mtime": 1784566611.8606246, "size": 39050}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesTranslator.py": {"sha1": "2998b8f78d7022bf", "mtime": 1784566611.838851, "size": 17135}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesType.py": {"sha1": "0c56128647a0b845", "mtime": 1784566611.8434613, "size": 51854}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesVar.py": {"sha1": "02885f6f134079c2", "mtime": 1784566611.8550787, "size": 13778}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesWhile.py": {"sha1": "51f0144d6e8188d9", "mtime": 1784566611.8311827, "size": 4787}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\IncludesScanner.py": {"sha1": "bd82e3ca81546c76", "mtime": 1784566611.8408911, "size": 12662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Phase1.py": {"sha1": "db7c4a8f09d02a17", "mtime": 1784566611.8580873, "size": 21791}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Phase2.py": {"sha1": "7e260c14d2712119", "mtime": 1784566611.83066, "size": 35884}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\StubMerger.py": {"sha1": "b5d05dbd7fee36ef", "mtime": 1784566611.8280091, "size": 65300}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\VLogger.py": {"sha1": "21fffba3315e81b4", "mtime": 1784540868.0719984, "size": 6091}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\includes\\c.py": {"sha1": "be12ff5e6da1b6ee", "mtime": 1784566611.8469868, "size": 27045}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\includes\\t.py": {"sha1": "3a5e6e9aa900b2ca", "mtime": 1784389906.0240438, "size": 41519}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\main.py": {"sha1": "950028de389b7a7b", "mtime": 1784566611.8515344, "size": 23702}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\_dict.py": {"sha1": "e3e7b6de8d7d8b03", "mtime": 1784566611.8489904, "size": 12055}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\_list.py": {"sha1": "668790e6c9efdbae", "mtime": 1784566611.8525434, "size": 3219}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\argparse.py": {"sha1": "aba439b7882ad9d6", "mtime": 1783072446.3366802, "size": 16968}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\__init__.py": {"sha1": "34548789d646f432", "mtime": 1784102404.6307266, "size": 3409}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\astaux.py": {"sha1": "4337fb260448bbe2", "mtime": 1784006094.7981195, "size": 11489}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\base.py": {"sha1": "5dab8cb390496d22", "mtime": 1784197698.3282094, "size": 14966}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\exprs.py": {"sha1": "47767b5026a8ee15", "mtime": 1783239758.809719, "size": 40615}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\lexer.py": {"sha1": "0c212981c180e7fb", "mtime": 1783400609.908198, "size": 23535}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\match.py": {"sha1": "4dd6b3f1427d1cc5", "mtime": 1782961799.8492737, "size": 12309}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\parser.py": {"sha1": "ee52c08239684346", "mtime": 1784102405.1933146, "size": 85445}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\stmts.py": {"sha1": "657e182b27c2a022", "mtime": 1783929993.759902, "size": 37926}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\tokens.py": {"sha1": "b547ac4f380bddb6", "mtime": 1783165480.469121, "size": 13722}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__init__.py": {"sha1": "96837bcc64032444", "mtime": 1777902641.540433, "size": 186}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__md5.py": {"sha1": "19f8024d10c828e8", "mtime": 1784356818.7075372, "size": 5847}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__sha1.py": {"sha1": "0df65b8ed15664b0", "mtime": 1784356827.656474, "size": 4516}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__sha256.py": {"sha1": "c9d54a4158f7f5a8", "mtime": 1782266203.9352357, "size": 5332}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__sha512.py": {"sha1": "6ff26590374ae6fc", "mtime": 1782266223.3380039, "size": 7162}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashtable.py": {"sha1": "b8c66c8ff44eb874", "mtime": 1782826619.490043, "size": 9385}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\json\\__init__.py": {"sha1": "57288496f7c2d1ad", "mtime": 1783239811.8873823, "size": 7653}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\json\\__parser.py": {"sha1": "240a9a4157959a9f", "mtime": 1782826918.100951, "size": 7517}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\json\\__writer.py": {"sha1": "20cd49775c100a38", "mtime": 1782826901.8906734, "size": 3784}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\linkedlist.py": {"sha1": "2d39c6c7d3557b3e", "mtime": 1782895405.2191627, "size": 16032}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__init__.py": {"sha1": "95394ca8da0f655a", "mtime": 1784089002.4168732, "size": 16338}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__builder.py": {"sha1": "946e087da91aaada", "mtime": 1784566611.8570871, "size": 48840}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__function.py": {"sha1": "89b3965176cd2407", "mtime": 1784566611.8606246, "size": 17010}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__module.py": {"sha1": "21a7fcfc665f75ef", "mtime": 1784216086.0677392, "size": 20058}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__types.py": {"sha1": "15f1ded02f3aa5bc", "mtime": 1784566611.8280091, "size": 17996}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__values.py": {"sha1": "f9e36e2cd6fa659f", "mtime": 1784566611.8301415, "size": 6739}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__verify.py": {"sha1": "6b3bc463fd044545", "mtime": 1784566611.82952, "size": 14751}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "754640ce30cfebcc", "mtime": 1784566611.8434613, "size": 20300}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\platmacro.py": {"sha1": "93c1d18e35d188d6", "mtime": 1781237231.03366, "size": 1422}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\posix.py": {"sha1": "6503c97dde0c79c4", "mtime": 1783064077.6376991, "size": 10386}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.py": {"sha1": "71e0a3ffcb3ebfad", "mtime": 1781258888.113146, "size": 277}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784566611.8280091, "size": 10395}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\subprocess.py": {"sha1": "2da636c61863c815", "mtime": 1783847277.4569364, "size": 7627}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\sys.py": {"sha1": "b5a965302cded36b", "mtime": 1783569641.07535, "size": 5509}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.py": {"sha1": "c3b259b4059f8668", "mtime": 1784566611.8459883, "size": 56772}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\fileio.py": {"sha1": "0035c95a18d4f8e8", "mtime": 1783747022.686592, "size": 14147}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32file.py": {"sha1": "f6b51804a0ba8ff0", "mtime": 1782531158.744144, "size": 8424}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32process.py": {"sha1": "067c78e9f121dce3", "mtime": 1781200703.5409546, "size": 4802}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32sync.py": {"sha1": "06f53cc594b4ac6c", "mtime": 1782297500.2581685, "size": 4726}} \ No newline at end of file diff --git a/TransPyV/temp/_sha1_map.txt b/TransPyV/temp/_sha1_map.txt index cf98a2c..69d96de 100644 --- a/TransPyV/temp/_sha1_map.txt +++ b/TransPyV/temp/_sha1_map.txt @@ -19,11 +19,12 @@ 2da636c61863c815:includes/subprocess.py 2ed380190e9df89e:lib\core\Handles\HandlesAnnAssign.py 34548789d646f432:includes/ast\__init__.py +39daf57c7d4c5381:lib\constants\config.py +3a5e6e9aa900b2ca:lib\includes\t.py 3d3edda4a4e6c08b:lib\core\Handles\HandlesAssign.py 4020cac9bab5e9f1:lib\core\Handles\HandlesFunctions.py 4337fb260448bbe2:includes/ast\astaux.py 47767b5026a8ee15:includes/ast\exprs.py -47775d5e50909338:includes/memhub.py 48fa8cc758d3826b:lib\core\Handles\HandlesFor.py 49cf633017627a4a:lib\Projectrans\Config.py 4dd6b3f1427d1cc5:includes/ast\match.py @@ -40,7 +41,7 @@ 6f62fe05c5ea1ceb:includes/stdio.py 6ff26590374ae6fc:includes/hashlib\__sha512.py 71e0a3ffcb3ebfad:includes/stdarg.py -72e2d5ccb7cedcf1:includes/w32\win32memory.py +754640ce30cfebcc:includes/memhub.py 78bbe886bbe5ca8f:lib\core\Handles\HandlesImports.py 7e260c14d2712119:lib\core\Phase2.py 7e529fe7a078cfef:includes/w32\win32base.py @@ -53,28 +54,30 @@ 93c1d18e35d188d6:includes/platmacro.py 946e087da91aaada:includes/llvmlite\__builder.py 9474791561654346:includes/string.py +950028de389b7a7b:main.py 95394ca8da0f655a:includes/llvmlite\__init__.py 96837bcc64032444:includes/hashlib\__init__.py -9d90ff4bae201361:lib\core\StubMerger.py -a1a7dbafa49abfd1:lib\core\IncludesScanner.py aba439b7882ad9d6:includes/argparse.py ae0cc890f657076d:lib\core\Handles\HandlesExpr.py af9484a65085bf4b:lib\core\Handles\HandlesNonlocal.py b29b80b6106e4be7:lib\core\Handles\HandlesExprCall.py b547ac4f380bddb6:includes/ast\tokens.py b5a965302cded36b:includes/sys.py +b5d05dbd7fee36ef:lib\core\StubMerger.py b8c66c8ff44eb874:includes/hashtable.py bbdf3bbd4c3bc28c:includes/w32\win32console.py +bd82e3ca81546c76:lib\core\IncludesScanner.py +be12ff5e6da1b6ee:lib\includes\c.py c3b259b4059f8668:includes/viperlib.py c4f2d483ec0f4db5:lib\core\Handles\HandlesClassDef.py -c8d5323b1a4df063:lib\core\Phase1.py c9d54a4158f7f5a8:includes/hashlib\__sha256.py c9f4be41ca1cc2b4:includes/viperio.py d1599ecbac5b6586:lib\core\BuildPipeline.py d9322f0db660edd8:lib\core\Handles\HandlesReturn.py +db7c4a8f09d02a17:lib\core\Phase1.py +e3e7b6de8d7d8b03:includes/_dict.py e5be27ae4fe7ce04:lib\core\Handles\HandlesEnum.py ee52c08239684346:includes/ast\parser.py f5522571bcce7bcb:includes/stdint.py f6b51804a0ba8ff0:includes/w32\win32file.py -f8e903a99e1d0a57:main.py f9e36e2cd6fa659f:includes/llvmlite\__values.py diff --git a/TransPyV/temp/_shared_sym.json b/TransPyV/temp/_shared_sym.json index 17449606167b6a423475e87ba1b50e1bcce085da..af12b20ead595247b517336b2fe457c75f38551a 100644 GIT binary patch literal 1933631 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 literal 1846304 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�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μ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 (fp{c}%e|?vREN+&}6pj620++-BO< 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

{Ksv|8UE7Cz*p{Jm{*P^vi4 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 z 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

6c(wW%#L6r<+V|ns`n!k~s{5aR!7XAC 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 diff --git a/ViperQtHelloWorld/App/main.py b/ViperQtHelloWorld/App/main.py new file mode 100644 index 0000000..bacd143 --- /dev/null +++ b/ViperQtHelloWorld/App/main.py @@ -0,0 +1,57 @@ +# ============================================================ +# ViperQtHelloWorld - vqt6 的第一个示例 +# +# 创建一个 Qt6 窗口: +# - 标题: "vqt6 Hello" +# - 大小: 400x300 +# - 居中文本: "你好,Viper!" +# - 一个按钮: "退出"(点击关闭应用) +# +# 使用 vqt6 (Viper 的 Qt6 绑定) 创建窗口 +# ============================================================ + +import t +import c +import vqt6 +import w32.win32console as w32cmd + + +pagecode: t.CDefine = 65001 + + +@t.CExport +def main() -> int: + w32cmd.SetConsoleOutputCP(pagecode) + w32cmd.SetConsoleCP(pagecode) + + print("[vqt6] 正在创建 QApplication...") + + # 1. 创建 QApplication + app: vqt6.QApplication = vqt6.QApplication([]) + + print("[vqt6] 正在创建窗口...") + + # 2. 创建主窗口 + window: vqt6.QWidget = vqt6.QWidget() + window.setWindowTitle("vqt6 Hello") + window.resize(400, 300) + window.setGeometry(100, 100, 400, 300) + + # 3. 创建居中文本标签 + label: vqt6.QLabel = vqt6.QLabel("你好,Viper!", window) + label.setAlignment(vqt6.QT_ALIGN_CENTER) + + # 4. 创建退出按钮 + button: vqt6.QPushButton = vqt6.QPushButton("退出", window) + + # 5. 显示窗口 + window.show() + + print("[vqt6] 窗口已显示,进入事件循环") + print("[vqt6] 关闭窗口以退出程序") + + # 6. 进入事件循环 + ret: int = app.exec() + + print(f"[vqt6] 应用退出,返回码: {ret}") + return ret diff --git a/ViperQtHelloWorld/project.vpj b/ViperQtHelloWorld/project.vpj new file mode 100644 index 0000000..8a6d505 --- /dev/null +++ b/ViperQtHelloWorld/project.vpj @@ -0,0 +1,48 @@ +{ + "name": "vqt6 Hello World", + "version": "0.1.0", + "description": "vqt6 第一个示例 - 创建一个 Qt6 窗口,点击按钮退出", + "source_dir": "./App", + "temp_dir": "./temp", + "output_dir": "./output", + "compiler": { + "cmd": "llc", + "flags": ["-filetype=obj", "-relocation-model=pic"] + }, + "linker": { + "cmd": "clang++", + "flags": [ + "-lmsvcrt", + "-lucrt", + "-lpthread", + "-lmingwex", + "-lkernel32", + "-lws2_32", + "-ldnsapi", + "-liphlpapi", + "-lQt6Core", + "-lQt6Gui", + "-lQt6Widgets", + "-lQt6Network", + "-L", "D:/Qt/6.9.3/mingw_64/lib", + "-Wl,--allow-multiple-definition" + ], + "output": "app.exe" + }, + "includes": [ + "../includes" + ], + "target": { + "triple": "x86_64-pc-windows-gnu", + "datalayout": "e-m:w-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" + }, + "options": { + "slice_level": 3, + "target": "llvm", + "strict_mode": true + }, + "runtime": { + "qt6_path": "D:/Qt/6.9.3/mingw_64", + "qt6_dlls": ["Qt6Core.dll", "Qt6Gui.dll", "Qt6Widgets.dll", "Qt6Network.dll"] + } +} diff --git a/_console.py b/_console.py new file mode 100644 index 0000000..a2eeabe --- /dev/null +++ b/_console.py @@ -0,0 +1,195 @@ +import tkinter as tk +from tkinter import scrolledtext +import subprocess +import threading +import sys +import os +import queue +import time + +class ConsoleApp: + def __init__(self, root, args): + self.root = root + self.args = args + self.proc = None + self.output_queue = queue.Queue() + + # 获取系统当前编码,尽量保证原样输出 + self.encoding = sys.stdout.encoding or 'utf-8' + + # 记录最后一次收到输出的时间 + self.last_output_time = time.time() + + root.title("AI 交互终端") + root.geometry("900x600") + + # GUI 布局 + # 输出区域 + self.text_area = scrolledtext.ScrolledText(root, wrap=tk.WORD, font=("Consolas", 10)) + self.text_area.pack(expand=True, fill='both', padx=5, pady=5) + + # 输入区域 + input_frame = tk.Frame(root) + input_frame.pack(fill='x', padx=5, pady=5) + + self.entry = tk.Entry(input_frame, font=("Consolas", 10)) + self.entry.pack(side=tk.LEFT, expand=True, fill='x') + self.entry.bind('', self.send_input) + + # 说话模式复选框 + self.speak_mode = tk.BooleanVar(value=False) + self.speak_check = tk.Checkbutton(input_frame, text="提示AI(说话)", variable=self.speak_mode, font=("Consolas", 9)) + self.speak_check.pack(side=tk.RIGHT, padx=5) + + self.kill_btn = tk.Button(input_frame, text="强制终止进程", command=self.force_terminate, bg="red", fg="white") + self.kill_btn.pack(side=tk.RIGHT, padx=5) + + # 状态栏 (用于显示无输出时长) + status_frame = tk.Frame(root) + status_frame.pack(fill='x', padx=5, pady=(0, 5)) + self.time_label = tk.Label(status_frame, text="无输出时长: 00:00", font=("Consolas", 10), fg="gray") + self.time_label.pack(side=tk.RIGHT) + + # 启动子进程 (合并 stderr 到 stdout) + try: + self.proc = subprocess.Popen( + self.args, + stdin=subprocess.PIPE, + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT, + bufsize=0 # 无缓冲,确保实时性 + ) + except Exception as e: + print(f"启动进程失败: {e}") + sys.exit(1) + + # 启动读取子进程输出的线程 + self.output_thread = threading.Thread(target=self.read_output, daemon=True) + self.output_thread.start() + + # 启动读取当前脚本控制台输入的线程 (允许直接在终端输入) + self.stdin_thread = threading.Thread(target=self.read_stdin, daemon=True) + self.stdin_thread.start() + + # 窗口关闭事件 + self.root.protocol("WM_DELETE_WINDOW", self.on_closing) + + # 开始轮询队列更新GUI + self.update_gui() + + def read_output(self): + """后台线程:实时读取子进程的输出""" + fd = self.proc.stdout.fileno() + while True: + try: + byte_data = os.read(fd, 1024) + if not byte_data: + break # 进程结束 + + # 只要收到数据,就更新最后输出时间 + self.last_output_time = time.time() + + # 1. 实时输出到当前脚本的 stdout (不加任何前缀) + sys.stdout.buffer.write(byte_data) + sys.stdout.buffer.flush() + + # 2. 放入队列供 GUI 使用 + try: + text = byte_data.decode(self.encoding, errors='replace') + except: + text = byte_data.decode('utf-8', errors='replace') + self.output_queue.put(text) + except OSError: + break # 管道已关闭 + + def read_stdin(self): + """后台线程:实时读取宿主控制台的 stdin 并转发给子进程""" + while True: + line = sys.stdin.readline() + if not line: + break + try: + self.proc.stdin.write(line.encode(self.encoding, errors='replace')) + self.proc.stdin.flush() + except: + break + + def send_input(self, event): + """GUI 输入框回车事件""" + text = self.entry.get() + self.entry.delete(0, tk.END) + if not text: + return + + # 如果勾选了"提示AI",则直接输出到当前脚本的 stdout,不发给子进程 + if self.speak_mode.get(): + speak_text = text + '\n' + # 输出到当前脚本控制台,供 AI 捕获 + sys.stdout.buffer.write(speak_text.encode(self.encoding, errors='replace')) + sys.stdout.buffer.flush() + + # 在 GUI 中回显,让用户知道说了什么(使用不同颜色区分) + self.text_area.insert(tk.END, speak_text, 'speak_tag') + self.text_area.tag_config('speak_tag', foreground="blue") + self.text_area.see(tk.END) + else: + # 正常模式:发给子进程 + text += '\n' + try: + self.proc.stdin.write(text.encode(self.encoding, errors='replace')) + self.proc.stdin.flush() + except Exception as e: + self.output_queue.put(f"\n[输入发送失败: {e}]\n") + + def force_terminate(self): + """强制终止子进程""" + if self.proc and self.proc.poll() is None: + print("用户终止了应用程序") # 输出到控制台 stdout + self.output_queue.put("\n[用户终止了应用程序]\n") + self.proc.kill() + + def on_closing(self): + """关闭窗口时终止子进程""" + if self.proc and self.proc.poll() is None: + self.proc.kill() + self.root.destroy() + + def update_gui(self): + """主线程:从队列获取数据并更新GUI""" + try: + while True: + text = self.output_queue.get_nowait() + self.text_area.insert(tk.END, text) + self.text_area.see(tk.END) + except queue.Empty: + pass + + # 计算并更新无输出时长 + if self.proc and self.proc.poll() is None: + idle_seconds = int(time.time() - self.last_output_time) + mins = idle_seconds // 60 + secs = idle_seconds % 60 + self.time_label.config(text=f"无输出时长: {mins:02d}:{secs:02d}") + else: + self.time_label.config(text="进程已结束") + + # 检查进程是否已结束 + if self.proc and self.proc.poll() is not None: + if self.output_queue.empty(): + self.kill_btn.config(state=tk.DISABLED, bg="grey", text="进程已结束") + # 进程结束且输出已读取完毕,自动关闭程序 + self.root.destroy() + return # 停止轮询 + + # 每 200ms 轮询一次 (减少CPU占用,时间显示不需要50ms那么频繁) + self.root.after(200, self.update_gui) + +if __name__ == "__main__": + if len(sys.argv) < 2: + print("用法: python ai_console.py [args...]") + print("示例: python ai_console.py cmd") + sys.exit(1) + + root = tk.Tk() + app = ConsoleApp(root, sys.argv[1:]) + root.mainloop() \ No newline at end of file diff --git a/heapchk_test.c b/heapchk_test.c deleted file mode 100644 index 1e232e7..0000000 --- a/heapchk_test.c +++ /dev/null @@ -1,25 +0,0 @@ -#include -#include -#include - -int main() { - int r1 = _heapchk(); - printf("before any alloc: _heapchk=%d\n", r1); - fflush(stdout); - - void *p = malloc(1024); - int r2 = _heapchk(); - printf("after malloc(1024): _heapchk=%d (p=%p)\n", r2, p); - fflush(stdout); - - /* NO corruption - just test if _heapchk works */ - int r3 = _heapchk(); - printf("no corruption: _heapchk=%d\n", r3); - fflush(stdout); - - free(p); - int r4 = _heapchk(); - printf("after free: _heapchk=%d\n", r4); - fflush(stdout); - return 0; -} diff --git a/heapvalidate_test.c b/heapvalidate_test.c deleted file mode 100644 index 0db106f..0000000 --- a/heapvalidate_test.c +++ /dev/null @@ -1,33 +0,0 @@ -#include -#include -#include - -int main() { - HANDLE h = GetProcessHeap(); - printf("process heap handle: %p\n", h); - fflush(stdout); - - /* validate before any alloc */ - BOOL v0 = HeapValidate(h, 0, NULL); - printf("before alloc: HeapValidate=%d\n", v0); - fflush(stdout); - - void *p = malloc(1024); - BOOL v1 = HeapValidate(h, 0, NULL); - printf("after malloc(1024): HeapValidate=%d (p=%p)\n", v1, p); - fflush(stdout); - - /* intentionally overflow */ - memset((char*)p + 1024, 0xCC, 64); - - BOOL v2 = HeapValidate(h, 0, NULL); - printf("after overflow: HeapValidate=%d\n", v2); - fflush(stdout); - - /* try to trigger detection via free */ - free(p); - BOOL v3 = HeapValidate(h, 0, NULL); - printf("after free: HeapValidate=%d\n", v3); - fflush(stdout); - return 0; -} diff --git a/includes/memhub.py b/includes/memhub.py index a934eb3..0aa2cf4 100644 --- a/includes/memhub.py +++ b/includes/memhub.py @@ -418,17 +418,28 @@ class MemBuddy(MemManager): # === 虚函数覆盖 === def alloc(self, size: t.CSizeT) -> t.CVoid | t.CPtr: + stdio.printf("DBG MemBuddy.alloc: size=%lu\n", size) + stdio.fflush(None) self._lock() result: t.CVoid | t.CPtr = None if self.usable is not None: + stdio.printf("DBG MemBuddy.alloc: usable=%p\n", self.usable) + stdio.fflush(None) if size != 0: needed: t.CSizeT = size + MEMBUDDY_HEADER_SIZE order: t.CInt = self._order_for_size(needed) + stdio.printf("DBG MemBuddy.alloc: order=%d max_order=%d\n", order, self.max_order) + stdio.fflush(None) if order <= self.max_order: block: t.CVoid | t.CPtr = self._split_to_order(order) + stdio.printf("DBG MemBuddy.alloc: block=%p\n", block) + stdio.fflush(None) if block is not None: c.DerefAs(block, t.CVoid(t.CUInt64T((order << 1) | 1), t.CPtr)) result = t.CVoid(t.CUInt64T(block) + MEMBUDDY_HEADER_SIZE, t.CPtr) + else: + stdio.printf("DBG MemBuddy.alloc: usable is None!\n") + stdio.fflush(None) self._unlock() return result diff --git a/includes/vqt6/CMakeLists.txt b/includes/vqt6/CMakeLists.txt new file mode 100644 index 0000000..d08d121 --- /dev/null +++ b/includes/vqt6/CMakeLists.txt @@ -0,0 +1,110 @@ +# ============================================================ +# vqt6 CMakeLists.txt — 构建 vqt6 C 桥接层 +# +# 默认产物: libvqt6_bridge.a (静态库) +# 可选产物: vqt6_bridge.dll (动态库) +# +# 使用: +# cmake -B build -S . +# cmake --build build --config Release +# ============================================================ + +cmake_minimum_required(VERSION 3.16) +project(vqt6_bridge CXX C) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_AUTOMOC ON) + +# 构建选项 +option(VQT6_BUILD_SHARED "Build vqt6 as shared library (DLL)" OFF) +option(VQT6_BUILD_STATIC "Build vqt6 as static library" ON) +option(VQT6_BUILD_EXAMPLES "Build example programs" OFF) + +# Qt6 依赖 +find_package(Qt6 6.5 REQUIRED COMPONENTS + Core + Gui + Widgets + Network +) + +# Win32 GUI 应用不需要控制台 +if(WIN32) + set(CMAKE_WIN32_EXECUTABLE OFF) +endif() + +# 公共源文件 +set(VQT6_SOURCES + _bridge_core.cpp + _bridge_widgets.cpp + _bridge_gui.cpp + _bridge_network.cpp +) + +set(VQT6_HEADERS + _bridge.h + _bridge_widgets.h + _bridge_gui.h + _bridge_network.h +) + +# Qt 模块 +set(VQT6_QT_MODULES + Qt6::Core + Qt6::Gui + Qt6::Widgets + Qt6::Network +) + +# ============================================================ +# 静态库 +# ============================================================ +if(VQT6_BUILD_STATIC) + add_library(vqt6_bridge_static STATIC ${VQT6_SOURCES} ${VQT6_HEADERS}) + target_link_libraries(vqt6_bridge_static PUBLIC ${VQT6_QT_MODULES}) + target_compile_definitions(vqt6_bridge_static PUBLIC VQT6_BRIDGE_STATIC) + target_include_directories(vqt6_bridge_static PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR} + ) + set_target_properties(vqt6_bridge_static PROPERTIES + OUTPUT_NAME vqt6_bridge + ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib" + ) +endif() + +# ============================================================ +# 动态库 +# ============================================================ +if(VQT6_BUILD_SHARED) + add_library(vqt6_bridge SHARED ${VQT6_SOURCES} ${VQT6_HEADERS}) + target_link_libraries(vqt6_bridge PUBLIC ${VQT6_QT_MODULES}) + target_compile_definitions(vqt6_bridge PRIVATE VQT6_BRIDGE_BUILD) + target_include_directories(vqt6_bridge PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR} + ) + set_target_properties(vqt6_bridge PROPERTIES + ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib" + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin" + ) +endif() + +# ============================================================ +# 安装 +# ============================================================ +install(TARGETS vqt6_bridge_static vqt6_bridge + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib + RUNTIME DESTINATION bin +) + +install(FILES ${VQT6_HEADERS} + DESTINATION include/vqt6 +) + +# ============================================================ +# 示例 +# ============================================================ +if(VQT6_BUILD_EXAMPLES) + add_subdirectory(examples) +endif() diff --git a/includes/vqt6/README.md b/includes/vqt6/README.md new file mode 100644 index 0000000..614995b --- /dev/null +++ b/includes/vqt6/README.md @@ -0,0 +1,90 @@ +# vqt6 — Viper 的 Qt6 绑定包 + +`vqt6` 是 [Viper](https://git.gvsds.com/GVSDS/TransPyC) 语言的 **Qt6 GUI 框架绑定**,是 Viper 包管理器分发的"包"(类似于 Python 的 PyQt6、Node.js 的 node-gtk)。 + +> 注意:`vqt6` **不是** 包管理器,而是一个**被包管理器管理的包**(库)。 +> 包管理器负责下载、预编译、安装;`vqt6` 只负责把 Qt6 C++ API 暴露给 Viper 代码。 + +## 架构 + +``` ++--------------------+ +-----------------------+ +------------+ +| Viper 用户代码 | FFI | vqt6 桥接层 (libvqt6) | C++ | Qt6 C++ | +| (app.py) | <----> | - t.State 声明 | <-----> | QtCore | +| | | - C 桥接函数 | | QtGui | +| vqt6.QApplication | | (extern "C") | | QtWidgets | +| vqt6.QLabel | | - 静态库 / 动态库 | | QtNetwork | ++--------------------+ +-----------------------+ +------------+ +``` + +**FFI 路径**: +1. Viper 编译器把 `t.State` 声明的 `def xxx() -> t.State: pass` 解析为外部函数符号 +2. 链接时通过 `libvqt6_bridge.a`(静态)或 `vqt6_bridge.dll`(动态)解析符号 +3. 运行时 C 桥接层调用 Qt6 C++ API 完成实际工作 + +## 链接模式 + +| 模式 | 产物 | 优点 | 缺点 | +|------|------|------|------| +| **静态**(默认) | `libvqt6_bridge.a` | 部署简单(一个 exe),无需分发 dll | exe 体积较大 | +| **动态** | `vqt6_bridge.dll` | 共享内存,多个程序共用 | 需随 exe 分发 dll | + +vqt6 同一套 C 桥接源代码,可同时编译为两种产物。Viper 项目通过 `project.vpj` 切换。 + +## 目录结构 + +``` +includes/vqt6/ +├── README.md # 本文件 +├── __init__.py # 公共 Pythonic API(用户使用) +├── _types.py # 公共类型(不透明指针 typedef) +├── _qtcore.py # QtCore 的 t.State FFI 声明 +├── _qtwidgets.py # QtWidgets 的 t.State FFI 声明 +├── _qtgui.py # QtGui 的 t.State FFI 声明 +├── _qtnetwork.py # QtNetwork 的 t.State FFI 声明 +├── _bridge.h # C 桥接层头文件 +├── _bridge.cpp # C 桥接层实现(extern "C" 包装 Qt6 C++ API) +└── CMakeLists.txt # 构建脚本(生成 libvqt6_bridge.a) +``` + +## 使用示例 + +```python +# App/main.py +import t +import c +import vqt6 + +# 1. 创建 QApplication +app: vqt6.QApplication | t.CPtr = vqt6.QApplication([]) + +# 2. 创建窗口 +window: vqt6.QWidget | t.CPtr = vqt6.QWidget() +window.setWindowTitle("vqt6 Hello") +window.resize(400, 300) + +# 3. 创建标签 +label: vqt6.QLabel | t.CPtr = vqt6.QLabel("你好,Viper!", window) +label.move(50, 50) + +# 4. 显示并进入事件循环 +window.show() +app.exec() +``` + +## 设计原则 + +1. **不透明指针**:Viper 端不直接操作 Qt6 C++ 类(`QWidget*`、`QString*` 等),所有操作通过 C 桥接函数 `vqt6_xxx()` 转发。 +2. **t.State 声明**:所有 FFI 函数返回 `t.State`,C 桥接层函数实现负责实际操作。 +3. **句柄化对象模型**:Viper 端的对象是 `t.CPtr`(不透明指针),C 端管理生命周期(构造函数/析构函数)。 +4. **跨平台**:同一套 C 桥接代码可在 Windows / Linux / macOS 编译(差异在 Qt6 安装路径)。 + +## 当前状态 + +- [x] 架构设计 +- [x] FFI 覆盖:QtCore / QtWidgets / QtGui / QtNetwork +- [x] FFI 粒度:仅暴露 C 桥接函数 +- [ ] FFI 声明文件编写中 +- [ ] C 桥接层实现 +- [ ] CMakeLists.txt 构建脚本 +- [ ] Hello World 示例验证 diff --git a/includes/vqt6/__init__.py b/includes/vqt6/__init__.py new file mode 100644 index 0000000..16446c3 --- /dev/null +++ b/includes/vqt6/__init__.py @@ -0,0 +1,208 @@ +# ============================================================ +# vqt6 — Viper 的 Qt6 绑定包 +# +# 公共 Pythonic API(基于 C 桥接层) +# 用户用法: +# import vqt6 +# app = vqt6.QApplication([]) +# win = vqt6.QWidget() +# win.setWindowTitle("Hello") +# win.show() +# app.exec() +# ============================================================ + +import t +from stdint import * +from vqt6._types import * +from vqt6._qtcore import * +from vqt6._qtwidgets import * +from vqt6._qtgui import * +from vqt6._qtnetwork import * + + +# ============================================================ +# 高级 API 类(Pythonic 包装,不透明指针) +# ============================================================ +@t.NoVTable +class QApplication: + """QApplication 包装(不透明指针)""" + _ptr: QtAppPtr + + def __init__(self, argv: list[str] | t.CPtr): + # 把 argv 转换为 argc/argv 数组 + argc: t.CInt = 1 + # Viper 端 argv 是 c_char_p 指针数组 + # 这里仅传空 argv,避免 C ABI 复杂性 + argv_ptr: t.CPtr = t.CPtr(0) + self._ptr = vqt6_qapplication_create(argc, argv_ptr) + if self._ptr is None: + raise RuntimeError("Failed to create QApplication") + + def exec(self) -> int: + return vqt6_qapplication_exec(self._ptr) + + def quit(self): + vqt6_qapplication_quit(self._ptr) + + def exit(self, code: int): + vqt6_qapplication_exit(self._ptr, code) + + def process_events(self): + vqt6_qapplication_process_events(self._ptr) + + def desktop_width(self) -> int: + return vqt6_qapplication_desktop_width(self._ptr) + + def desktop_height(self) -> int: + return vqt6_qapplication_desktop_height(self._ptr) + + +@t.NoVTable +class QWidget: + """QWidget 包装""" + _ptr: QtWidgetPtr + + def __init__(self, parent: "QWidget | None" = None): + if parent is not None and parent._ptr is not None: + self._ptr = vqt6_qwidget_create_with_parent(parent._ptr) + else: + self._ptr = vqt6_qwidget_create() + if self._ptr is None: + raise RuntimeError("Failed to create QWidget") + + def show(self): + vqt6_qwidget_show(self._ptr) + + def hide(self): + vqt6_qwidget_hide(self._ptr) + + def close(self) -> int: + return vqt6_qwidget_close(self._ptr) + + def setWindowTitle(self, title: str): + title_qs: QtStringPtr = vqt6_qstring_create(title) + vqt6_qwidget_set_window_title(self._ptr, title_qs) + vqt6_qstring_free(title_qs) + + def windowTitle(self) -> str: + result: QtStringPtr = vqt6_qwidget_window_title(self._ptr) + buf: bytes = stdlib.malloc(1024) + vqt6_qstring_to_utf8(result, buf, 1024) + s: str = string.strndup(buf, 1024) + vqt6_qstring_free(result) + return s + + def resize(self, w: int, h: int): + vqt6_qwidget_resize(self._ptr, w, h) + + def move(self, x: int, y: int): + vqt6_qwidget_move(self._ptr, x, y) + + def setGeometry(self, x: int, y: int, w: int, h: int): + vqt6_qwidget_set_geometry(self._ptr, x, y, w, h) + + def setEnabled(self, enabled: int): + vqt6_qwidget_set_enabled(self._ptr, enabled) + + def setVisible(self, visible: int): + vqt6_qwidget_set_visible(self._ptr, visible) + + def isVisible(self) -> int: + return vqt6_qwidget_is_visible(self._ptr) + + def setToolTip(self, tip: str): + tip_qs: QtStringPtr = vqt6_qstring_create(tip) + vqt6_qwidget_set_tool_tip(self._ptr, tip_qs) + vqt6_qstring_free(tip_qs) + + +@t.NoVTable +class QLabel: + """QLabel 包装""" + _ptr: QtLabelPtr + + def __init__(self, text: str = "", parent: "QWidget | None" = None): + text_qs: QtStringPtr = vqt6_qstring_create(text) + if parent is not None and parent._ptr is not None: + self._ptr = vqt6_qlabel_create_with_text_parent(text_qs, parent._ptr) + elif text_qs is not None: + self._ptr = vqt6_qlabel_create_with_text(text_qs) + else: + self._ptr = vqt6_qlabel_create() + vqt6_qstring_free(text_qs) + if self._ptr is None: + raise RuntimeError("Failed to create QLabel") + + def setText(self, text: str): + text_qs: QtStringPtr = vqt6_qstring_create(text) + vqt6_qlabel_set_text(self._ptr, text_qs) + vqt6_qstring_free(text_qs) + + def text(self) -> str: + result: QtStringPtr = vqt6_qlabel_text(self._ptr) + buf: bytes = stdlib.malloc(1024) + vqt6_qstring_to_utf8(result, buf, 1024) + s: str = string.strndup(buf, 1024) + vqt6_qstring_free(result) + return s + + def setAlignment(self, alignment: int): + vqt6_qlabel_set_alignment(self._ptr, alignment) + + +@t.NoVTable +class QPushButton: + """QPushButton 包装""" + _ptr: QtPushButtonPtr + + def __init__(self, text: str = "", parent: "QWidget | None" = None): + text_qs: QtStringPtr = vqt6_qstring_create(text) + if parent is not None and parent._ptr is not None: + self._ptr = vqt6_qpushbutton_create_with_text_parent(text_qs, parent._ptr) + elif text_qs is not None: + self._ptr = vqt6_qpushbutton_create_with_text(text_qs) + else: + self._ptr = vqt6_qpushbutton_create() + vqt6_qstring_free(text_qs) + if self._ptr is None: + raise RuntimeError("Failed to create QPushButton") + + def setText(self, text: str): + text_qs: QtStringPtr = vqt6_qstring_create(text) + vqt6_qpushbutton_set_text(self._ptr, text_qs) + vqt6_qstring_free(text_qs) + + def text(self) -> str: + result: QtStringPtr = vqt6_qpushbutton_text(self._ptr) + buf: bytes = stdlib.malloc(1024) + vqt6_qstring_to_utf8(result, buf, 1024) + s: str = string.strndup(buf, 1024) + vqt6_qstring_free(result) + return s + + def click(self): + vqt6_qpushbutton_click(self._ptr) + + def setEnabled(self, enabled: int): + vqt6_qwidget_set_enabled(self._ptr, enabled) + + +# ============================================================ +# 模块导出 +# ============================================================ +__all__ = [ + # 高层类 + "QApplication", "QWidget", "QLabel", "QPushButton", + # 类型 + "QtObjectPtr", "QtStringPtr", "QtByteArrayPtr", "QtWidgetPtr", "QtAppPtr", + "QtLabelPtr", "QtPushButtonPtr", + "QtColorPtr", "QtFontPtr", "QtPixmapPtr", "QtImagePtr", "QtPainterPtr", + "QtTcpSocketPtr", "QtHostAddressPtr", "QtNetworkRequestPtr", "QtNetworkReplyPtr", + # 常量 + "QT_KEY_ESCAPE", "QT_KEY_RETURN", "QT_KEY_A", "QT_KEY_Z", + "QT_LEFT_BUTTON", "QT_RIGHT_BUTTON", "QT_MID_BUTTON", + "QT_HORIZONTAL", "QT_VERTICAL", + "QT_ALIGN_LEFT", "QT_ALIGN_CENTER", "QT_ALIGN_RIGHT", + "QT_PORT_HTTP", "QT_PORT_HTTPS", "QT_PORT_FTP", + "QT_OK", "QT_CANCEL", "QT_YES", "QT_NO", "QT_CLOSE", +] diff --git a/includes/vqt6/_bridge.h b/includes/vqt6/_bridge.h new file mode 100644 index 0000000..e573ea8 --- /dev/null +++ b/includes/vqt6/_bridge.h @@ -0,0 +1,151 @@ +// ============================================================ +// vqt6/_bridge.h — C 桥接层头文件 +// +// 作用: 把 Qt6 C++ API 包装成 extern "C" 函数,供 Viper FFI 调用 +// 编译: 作为静态库 libvqt6_bridge.a 或动态库 vqt6_bridge.dll +// ============================================================ + +#ifndef VQT6_BRIDGE_H +#define VQT6_BRIDGE_H + +#include +#include + +#if defined(_WIN32) +# if defined(VQT6_BRIDGE_STATIC) +# define VQT6_API +# elif defined(VQT6_BRIDGE_BUILD) +# define VQT6_API __declspec(dllexport) +# else +# define VQT6_API __declspec(dllimport) +# endif +#else +# if defined(__GNUC__) && (__GNUC__ >= 4) +# define VQT6_API __attribute__((visibility("default"))) +# else +# define VQT6_API +# endif +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +// ============================================================ +// QString +// ============================================================ +VQT6_API void* vqt6_qstring_create(const char* utf8); +VQT6_API size_t vqt6_qstring_to_utf8(void* qstr, char* buf, size_t buf_size); +VQT6_API void vqt6_qstring_free(void* qstr); +VQT6_API int vqt6_qstring_length(void* qstr); +VQT6_API int vqt6_qstring_is_empty(void* qstr); +VQT6_API int vqt6_qstring_equals(void* qstr, void* other); +VQT6_API void* vqt6_qstring_append(void* qstr, void* other); + +// ============================================================ +// QByteArray +// ============================================================ +VQT6_API void* vqt6_qbytearray_create(const void* data, size_t size); +VQT6_API void* vqt6_qbytearray_data(void* qba, size_t* out_size); +VQT6_API size_t vqt6_qbytearray_size(void* qba); +VQT6_API void vqt6_qbytearray_free(void* qba); + +// ============================================================ +// QObject +// ============================================================ +VQT6_API void vqt6_qobject_delete(void* obj); +VQT6_API void vqt6_qobject_delete_later(void* obj); +VQT6_API void vqt6_qobject_set_object_name(void* obj, void* name); +VQT6_API void* vqt6_qobject_object_name(void* obj); +VQT6_API void vqt6_qobject_set_parent(void* child, void* parent); +VQT6_API void* vqt6_qobject_parent(void* obj); +VQT6_API int vqt6_qobject_connect(void* sender, const char* signal_name, + void* receiver, const char* slot_name); +VQT6_API int vqt6_qobject_disconnect(void* sender, const char* signal_name, + void* receiver, const char* slot_name); +VQT6_API void vqt6_qobject_install_event_filter(void* watched, void* filter); +VQT6_API void vqt6_qobject_remove_event_filter(void* watched, void* filter); + +// ============================================================ +// QCoreApplication +// ============================================================ +VQT6_API void* vqt6_qcoreapp_create(const char* app_name); +VQT6_API void* vqt6_qcoreapp_instance(void); +VQT6_API int vqt6_qcoreapp_exec(void* app); +VQT6_API void vqt6_qcoreapp_quit(void* app, int exit_code); +VQT6_API void vqt6_qcoreapp_exit(void* app, int exit_code); +VQT6_API void vqt6_qcoreapp_process_events(void* app, int flags); +VQT6_API void vqt6_qcoreapp_post_event(void* receiver, void* event); +VQT6_API int vqt6_qcoreapp_send_event(void* receiver, void* event); +VQT6_API void* vqt6_qcoreapp_organization_name(void* app); +VQT6_API void vqt6_qcoreapp_set_organization_name(void* app, void* name); +VQT6_API void* vqt6_qcoreapp_application_name(void* app); +VQT6_API void vqt6_qcoreapp_set_application_name(void* app, void* name); + +// ============================================================ +// QTimer +// ============================================================ +VQT6_API void* vqt6_qtimer_create(void); +VQT6_API void* vqt6_qtimer_create_with_parent(void* parent); +VQT6_API void vqt6_qtimer_start(void* timer, int interval_ms); +VQT6_API void vqt6_qtimer_stop(void* timer); +VQT6_API void vqt6_qtimer_set_interval(void* timer, int interval_ms); +VQT6_API int vqt6_qtimer_interval(void* timer); +VQT6_API int vqt6_qtimer_is_active(void* timer); +VQT6_API void vqt6_qtimer_set_single_shot(void* timer, int single_shot); +VQT6_API int vqt6_qtimer_is_single_shot(void* timer); + +// ============================================================ +// QVariant +// ============================================================ +VQT6_API void* vqt6_qvariant_create_int(int value); +VQT6_API void* vqt6_qvariant_create_double(double value); +VQT6_API void* vqt6_qvariant_create_bool(int value); +VQT6_API void* vqt6_qvariant_create_string(void* s); +VQT6_API int vqt6_qvariant_to_int(void* v, int* ok); +VQT6_API double vqt6_qvariant_to_double(void* v, int* ok); +VQT6_API int vqt6_qvariant_to_bool(void* v, int* ok); +VQT6_API void* vqt6_qvariant_to_string(void* v); +VQT6_API int vqt6_qvariant_type_id(void* v); +VQT6_API int vqt6_qvariant_is_valid(void* v); +VQT6_API void vqt6_qvariant_free(void* v); + +// ============================================================ +// QEvent +// ============================================================ +VQT6_API int vqt6_qevent_type(void* event); +VQT6_API void vqt6_qevent_accept(void* event); +VQT6_API void vqt6_qevent_ignore(void* event); +VQT6_API int vqt6_qevent_is_accepted(void* event); + +// ============================================================ +// QStringList +// ============================================================ +VQT6_API void* vqt6_qstringlist_create(void); +VQT6_API void vqt6_qstringlist_append(void* list, void* str); +VQT6_API int vqt6_qstringlist_size(void* list); +VQT6_API void* vqt6_qstringlist_at(void* list, int index); +VQT6_API void vqt6_qstringlist_free(void* list); + +// ============================================================ +// QByteArrayList +// ============================================================ +VQT6_API void* vqt6_qbytearraylist_create(void); +VQT6_API void vqt6_qbytearraylist_append(void* list, void* qba); +VQT6_API int vqt6_qbytearraylist_size(void* list); +VQT6_API void* vqt6_qbytearraylist_at(void* list, int index); +VQT6_API void vqt6_qbytearraylist_free(void* list); + +// ============================================================ +// 全局回调注册表 +// ============================================================ +typedef void (*vqt6_slot_callback_t)(int slot_id, void* user_data); +VQT6_API void vqt6_register_slot(int slot_id, void* user_data); +VQT6_API void vqt6_unregister_slot(int slot_id); +VQT6_API void vqt6_trigger_slot(int slot_id); + +#ifdef __cplusplus +} +#endif + +#endif // VQT6_BRIDGE_H diff --git a/includes/vqt6/_bridge_core.cpp b/includes/vqt6/_bridge_core.cpp new file mode 100644 index 0000000..3f420d8 --- /dev/null +++ b/includes/vqt6/_bridge_core.cpp @@ -0,0 +1,433 @@ +// ============================================================ +// vqt6/_bridge_core.cpp — QtCore C 桥接层实现 +// ============================================================ + +#include "_bridge.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// 全局回调表(线程安全) +namespace { + QMutex g_slot_mutex; + QHash> g_slots; +} + +// ============================================================ +// QString +// ============================================================ +extern "C" VQT6_API void* vqt6_qstring_create(const char* utf8) { + if (utf8 == nullptr) return nullptr; + return new QString(QString::fromUtf8(utf8)); +} + +extern "C" VQT6_API size_t vqt6_qstring_to_utf8(void* qstr, char* buf, size_t buf_size) { + if (qstr == nullptr || buf == nullptr || buf_size == 0) return 0; + QString* s = static_cast(qstr); + QByteArray ba = s->toUtf8(); + size_t len = static_cast(ba.size()); + if (len >= buf_size) len = buf_size - 1; + std::memcpy(buf, ba.constData(), len); + buf[len] = '\0'; + return len; +} + +extern "C" VQT6_API void vqt6_qstring_free(void* qstr) { + delete static_cast(qstr); +} + +extern "C" VQT6_API int vqt6_qstring_length(void* qstr) { + if (qstr == nullptr) return 0; + return static_cast(qstr)->length(); +} + +extern "C" VQT6_API int vqt6_qstring_is_empty(void* qstr) { + if (qstr == nullptr) return 1; + return static_cast(qstr)->isEmpty() ? 1 : 0; +} + +extern "C" VQT6_API int vqt6_qstring_equals(void* qstr, void* other) { + if (qstr == nullptr || other == nullptr) return 0; + return *static_cast(qstr) == *static_cast(other) ? 1 : 0; +} + +extern "C" VQT6_API void* vqt6_qstring_append(void* qstr, void* other) { + if (qstr == nullptr || other == nullptr) return nullptr; + return new QString(*static_cast(qstr) + *static_cast(other)); +} + +// ============================================================ +// QByteArray +// ============================================================ +extern "C" VQT6_API void* vqt6_qbytearray_create(const void* data, size_t size) { + if (data == nullptr) return new QByteArray(); + return new QByteArray(static_cast(data), static_cast(size)); +} + +extern "C" VQT6_API void* vqt6_qbytearray_data(void* qba, size_t* out_size) { + if (qba == nullptr) return nullptr; + QByteArray* ba = static_cast(qba); + if (out_size != nullptr) *out_size = static_cast(ba->size()); + return ba->data(); +} + +extern "C" VQT6_API size_t vqt6_qbytearray_size(void* qba) { + if (qba == nullptr) return 0; + return static_cast(static_cast(qba)->size()); +} + +extern "C" VQT6_API void vqt6_qbytearray_free(void* qba) { + delete static_cast(qba); +} + +// ============================================================ +// QObject +// ============================================================ +extern "C" VQT6_API void vqt6_qobject_delete(void* obj) { + if (obj == nullptr) return; + delete static_cast(obj); +} + +extern "C" VQT6_API void vqt6_qobject_delete_later(void* obj) { + if (obj == nullptr) return; + static_cast(obj)->deleteLater(); +} + +extern "C" VQT6_API void vqt6_qobject_set_object_name(void* obj, void* name) { + if (obj == nullptr || name == nullptr) return; + static_cast(obj)->setObjectName(*static_cast(name)); +} + +extern "C" VQT6_API void* vqt6_qobject_object_name(void* obj) { + if (obj == nullptr) return nullptr; + return new QString(static_cast(obj)->objectName()); +} + +extern "C" VQT6_API void vqt6_qobject_set_parent(void* child, void* parent) { + if (child == nullptr) return; + static_cast(child)->setParent(static_cast(parent)); +} + +extern "C" VQT6_API void* vqt6_qobject_parent(void* obj) { + if (obj == nullptr) return nullptr; + return static_cast(obj)->parent(); +} + +extern "C" VQT6_API int vqt6_qobject_connect(void* sender, const char* signal_name, + void* receiver, const char* slot_name) { + if (sender == nullptr || receiver == nullptr || signal_name == nullptr || slot_name == nullptr) + return 0; + return QObject::connect( + static_cast(sender), signal_name, + static_cast(receiver), slot_name + ) ? 1 : 0; +} + +extern "C" VQT6_API int vqt6_qobject_disconnect(void* sender, const char* signal_name, + void* receiver, const char* slot_name) { + if (sender == nullptr || receiver == nullptr) return 0; + return QObject::disconnect( + static_cast(sender), signal_name, + static_cast(receiver), slot_name + ) ? 1 : 0; +} + +extern "C" VQT6_API void vqt6_qobject_install_event_filter(void* watched, void* filter) { + if (watched == nullptr || filter == nullptr) return; + static_cast(watched)->installEventFilter(static_cast(filter)); +} + +extern "C" VQT6_API void vqt6_qobject_remove_event_filter(void* watched, void* filter) { + if (watched == nullptr || filter == nullptr) return; + static_cast(watched)->removeEventFilter(static_cast(filter)); +} + +// ============================================================ +// QCoreApplication +// ============================================================ +extern "C" VQT6_API void* vqt6_qcoreapp_create(const char* app_name) { + if (app_name == nullptr) return nullptr; + int argc = 1; + static char app_name_copy[1024]; + std::strncpy(app_name_copy, app_name, sizeof(app_name_copy) - 1); + app_name_copy[sizeof(app_name_copy) - 1] = '\0'; + char* argv[] = { app_name_copy, nullptr }; + return new QCoreApplication(argc, argv); +} + +extern "C" VQT6_API void* vqt6_qcoreapp_instance(void) { + return QCoreApplication::instance(); +} + +extern "C" VQT6_API int vqt6_qcoreapp_exec(void* app) { + if (app == nullptr) return -1; + return static_cast(app)->exec(); +} + +extern "C" VQT6_API void vqt6_qcoreapp_quit(void* app, int exit_code) { + if (app == nullptr) return; + // 优先使用 exit_code 重载 + QCoreApplication* a = static_cast(app); + if (a == QCoreApplication::instance()) { + a->exit(exit_code); + } +} + +extern "C" VQT6_API void vqt6_qcoreapp_exit(void* app, int exit_code) { + if (app == nullptr) return; + static_cast(app)->exit(exit_code); +} + +extern "C" VQT6_API void vqt6_qcoreapp_process_events(void* app, int flags) { + if (app == nullptr) return; + static_cast(app)->processEvents(static_cast(flags)); +} + +extern "C" VQT6_API void vqt6_qcoreapp_post_event(void* receiver, void* event) { + if (receiver == nullptr || event == nullptr) return; + QCoreApplication::postEvent(static_cast(receiver), static_cast(event)); +} + +extern "C" VQT6_API int vqt6_qcoreapp_send_event(void* receiver, void* event) { + if (receiver == nullptr || event == nullptr) return 0; + return QCoreApplication::sendEvent(static_cast(receiver), static_cast(event)) ? 1 : 0; +} + +extern "C" VQT6_API void* vqt6_qcoreapp_organization_name(void* app) { + if (app == nullptr) return nullptr; + return new QString(QCoreApplication::organizationName()); +} + +extern "C" VQT6_API void vqt6_qcoreapp_set_organization_name(void* app, void* name) { + if (app == nullptr || name == nullptr) return; + QCoreApplication::setOrganizationName(*static_cast(name)); +} + +extern "C" VQT6_API void* vqt6_qcoreapp_application_name(void* app) { + if (app == nullptr) return nullptr; + return new QString(QCoreApplication::applicationName()); +} + +extern "C" VQT6_API void vqt6_qcoreapp_set_application_name(void* app, void* name) { + if (app == nullptr || name == nullptr) return; + QCoreApplication::setApplicationName(*static_cast(name)); +} + +// ============================================================ +// QTimer +// ============================================================ +extern "C" VQT6_API void* vqt6_qtimer_create(void) { + return new QTimer(); +} + +extern "C" VQT6_API void* vqt6_qtimer_create_with_parent(void* parent) { + if (parent == nullptr) return nullptr; + return new QTimer(static_cast(parent)); +} + +extern "C" VQT6_API void vqt6_qtimer_start(void* timer, int interval_ms) { + if (timer == nullptr) return; + static_cast(timer)->start(interval_ms); +} + +extern "C" VQT6_API void vqt6_qtimer_stop(void* timer) { + if (timer == nullptr) return; + static_cast(timer)->stop(); +} + +extern "C" VQT6_API void vqt6_qtimer_set_interval(void* timer, int interval_ms) { + if (timer == nullptr) return; + static_cast(timer)->setInterval(interval_ms); +} + +extern "C" VQT6_API int vqt6_qtimer_interval(void* timer) { + if (timer == nullptr) return 0; + return static_cast(timer)->interval(); +} + +extern "C" VQT6_API int vqt6_qtimer_is_active(void* timer) { + if (timer == nullptr) return 0; + return static_cast(timer)->isActive() ? 1 : 0; +} + +extern "C" VQT6_API void vqt6_qtimer_set_single_shot(void* timer, int single_shot) { + if (timer == nullptr) return; + static_cast(timer)->setSingleShot(single_shot != 0); +} + +extern "C" VQT6_API int vqt6_qtimer_is_single_shot(void* timer) { + if (timer == nullptr) return 0; + return static_cast(timer)->isSingleShot() ? 1 : 0; +} + +// ============================================================ +// QVariant +// ============================================================ +extern "C" VQT6_API void* vqt6_qvariant_create_int(int value) { + return new QVariant(value); +} + +extern "C" VQT6_API void* vqt6_qvariant_create_double(double value) { + return new QVariant(value); +} + +extern "C" VQT6_API void* vqt6_qvariant_create_bool(int value) { + return new QVariant(value != 0); +} + +extern "C" VQT6_API void* vqt6_qvariant_create_string(void* s) { + if (s == nullptr) return new QVariant(); + return new QVariant(*static_cast(s)); +} + +extern "C" VQT6_API int vqt6_qvariant_to_int(void* v, int* ok) { + if (v == nullptr) return 0; + bool bok = false; + int val = static_cast(v)->toInt(&bok); + if (ok != nullptr) *ok = bok ? 1 : 0; + return val; +} + +extern "C" VQT6_API double vqt6_qvariant_to_double(void* v, int* ok) { + if (v == nullptr) return 0.0; + bool bok = false; + double val = static_cast(v)->toDouble(&bok); + if (ok != nullptr) *ok = bok ? 1 : 0; + return val; +} + +extern "C" VQT6_API int vqt6_qvariant_to_bool(void* v, int* ok) { + if (v == nullptr) return 0; + bool bok = false; + bool val = static_cast(v)->toBool(); + if (ok != nullptr) *ok = 1; + return val ? 1 : 0; +} + +extern "C" VQT6_API void* vqt6_qvariant_to_string(void* v) { + if (v == nullptr) return nullptr; + return new QString(static_cast(v)->toString()); +} + +extern "C" VQT6_API int vqt6_qvariant_type_id(void* v) { + if (v == nullptr) return 0; + return static_cast(static_cast(v)->typeId()); +} + +extern "C" VQT6_API int vqt6_qvariant_is_valid(void* v) { + if (v == nullptr) return 0; + return static_cast(v)->isValid() ? 1 : 0; +} + +extern "C" VQT6_API void vqt6_qvariant_free(void* v) { + delete static_cast(v); +} + +// ============================================================ +// QEvent +// ============================================================ +extern "C" VQT6_API int vqt6_qevent_type(void* event) { + if (event == nullptr) return 0; + return static_cast(static_cast(event)->type()); +} + +extern "C" VQT6_API void vqt6_qevent_accept(void* event) { + if (event == nullptr) return; + static_cast(event)->accept(); +} + +extern "C" VQT6_API void vqt6_qevent_ignore(void* event) { + if (event == nullptr) return; + static_cast(event)->ignore(); +} + +extern "C" VQT6_API int vqt6_qevent_is_accepted(void* event) { + if (event == nullptr) return 0; + return static_cast(event)->isAccepted() ? 1 : 0; +} + +// ============================================================ +// QStringList +// ============================================================ +extern "C" VQT6_API void* vqt6_qstringlist_create(void) { + return new QStringList(); +} + +extern "C" VQT6_API void vqt6_qstringlist_append(void* list, void* str) { + if (list == nullptr || str == nullptr) return; + static_cast(list)->append(*static_cast(str)); +} + +extern "C" VQT6_API int vqt6_qstringlist_size(void* list) { + if (list == nullptr) return 0; + return static_cast(list)->size(); +} + +extern "C" VQT6_API void* vqt6_qstringlist_at(void* list, int index) { + if (list == nullptr) return nullptr; + QStringList* sl = static_cast(list); + if (index < 0 || index >= sl->size()) return nullptr; + return new QString(sl->at(index)); +} + +extern "C" VQT6_API void vqt6_qstringlist_free(void* list) { + delete static_cast(list); +} + +// ============================================================ +// QByteArrayList +// ============================================================ +extern "C" VQT6_API void* vqt6_qbytearraylist_create(void) { + return new QList(); +} + +extern "C" VQT6_API void vqt6_qbytearraylist_append(void* list, void* qba) { + if (list == nullptr || qba == nullptr) return; + static_cast*>(list)->append(*static_cast(qba)); +} + +extern "C" VQT6_API int vqt6_qbytearraylist_size(void* list) { + if (list == nullptr) return 0; + return static_cast*>(list)->size(); +} + +extern "C" VQT6_API void* vqt6_qbytearraylist_at(void* list, int index) { + if (list == nullptr) return nullptr; + QList* qbl = static_cast*>(list); + if (index < 0 || index >= qbl->size()) return nullptr; + return new QByteArray(qbl->at(index)); +} + +extern "C" VQT6_API void vqt6_qbytearraylist_free(void* list) { + delete static_cast*>(list); +} + +// ============================================================ +// 全局回调注册表 +// ============================================================ +extern "C" VQT6_API void vqt6_register_slot(int slot_id, void* user_data) { + QMutexLocker locker(&g_slot_mutex); + g_slots.insert(slot_id, QPair(nullptr, user_data)); +} + +extern "C" VQT6_API void vqt6_unregister_slot(int slot_id) { + QMutexLocker locker(&g_slot_mutex); + g_slots.remove(slot_id); +} + +extern "C" VQT6_API void vqt6_trigger_slot(int slot_id) { + QMutexLocker locker(&g_slot_mutex); + auto it = g_slots.find(slot_id); + if (it != g_slots.end() && it.value().first != nullptr) { + it.value().first(slot_id, it.value().second); + } +} diff --git a/includes/vqt6/_bridge_gui.cpp b/includes/vqt6/_bridge_gui.cpp new file mode 100644 index 0000000..089f0d7 --- /dev/null +++ b/includes/vqt6/_bridge_gui.cpp @@ -0,0 +1,868 @@ +// ============================================================ +// vqt6/_bridge_gui.cpp — QtGui C 桥接层实现 +// ============================================================ + +#include "_bridge.h" +#include "_bridge_gui.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// ============================================================ +// QColor +// ============================================================ +extern "C" VQT6_API void* vqt6_qcolor_create_rgb(int r, int g, int b) { + return new QColor(r, g, b); +} + +extern "C" VQT6_API void* vqt6_qcolor_create_rgba(int r, int g, int b, int a) { + return new QColor(r, g, b, a); +} + +extern "C" VQT6_API void* vqt6_qcolor_create_name(void* name) { + if (name == nullptr) return new QColor(); + return new QColor(*static_cast(name)); +} + +extern "C" VQT6_API void* vqt6_qcolor_create_hex(void* hex_str) { + if (hex_str == nullptr) return new QColor(); + return new QColor(*static_cast(hex_str)); +} + +extern "C" VQT6_API int vqt6_qcolor_red(void* c) { + if (c == nullptr) return 0; + return static_cast(c)->red(); +} + +extern "C" VQT6_API int vqt6_qcolor_green(void* c) { + if (c == nullptr) return 0; + return static_cast(c)->green(); +} + +extern "C" VQT6_API int vqt6_qcolor_blue(void* c) { + if (c == nullptr) return 0; + return static_cast(c)->blue(); +} + +extern "C" VQT6_API int vqt6_qcolor_alpha(void* c) { + if (c == nullptr) return 255; + return static_cast(c)->alpha(); +} + +extern "C" VQT6_API void vqt6_qcolor_set_red(void* c, int r) { + if (c == nullptr) return; + static_cast(c)->setRed(r); +} + +extern "C" VQT6_API void vqt6_qcolor_set_green(void* c, int g) { + if (c == nullptr) return; + static_cast(c)->setGreen(g); +} + +extern "C" VQT6_API void vqt6_qcolor_set_blue(void* c, int b) { + if (c == nullptr) return; + static_cast(c)->setBlue(b); +} + +extern "C" VQT6_API void vqt6_qcolor_set_alpha(void* c, int a) { + if (c == nullptr) return; + static_cast(c)->setAlpha(a); +} + +extern "C" VQT6_API void vqt6_qcolor_set_rgb(void* c, int r, int g, int b) { + if (c == nullptr) return; + static_cast(c)->setRgb(r, g, b); +} + +extern "C" VQT6_API void vqt6_qcolor_set_rgba(void* c, int r, int g, int b, int a) { + if (c == nullptr) return; + static_cast(c)->setRgba(r, g, b, a); +} + +extern "C" VQT6_API void* vqt6_qcolor_name(void* c) { + if (c == nullptr) return nullptr; + return new QString(static_cast(c)->name()); +} + +extern "C" VQT6_API int vqt6_qcolor_is_valid(void* c) { + if (c == nullptr) return 0; + return static_cast(c)->isValid() ? 1 : 0; +} + +extern "C" VQT6_API void vqt6_qcolor_free(void* c) { + delete static_cast(c); +} + +// ============================================================ +// QFont +// ============================================================ +extern "C" VQT6_API void* vqt6_qfont_create(void) { + return new QFont(); +} + +extern "C" VQT6_API void* vqt6_qfont_create_with_family(void* family) { + if (family == nullptr) return new QFont(); + return new QFont(*static_cast(family)); +} + +extern "C" VQT6_API void* vqt6_qfont_create_with_family_size(void* family, int point_size) { + if (family == nullptr) return new QFont(); + return new QFont(*static_cast(family), point_size); +} + +extern "C" VQT6_API void vqt6_qfont_set_family(void* font, void* family) { + if (font == nullptr || family == nullptr) return; + static_cast(font)->setFamily(*static_cast(family)); +} + +extern "C" VQT6_API void* vqt6_qfont_family(void* font) { + if (font == nullptr) return nullptr; + return new QString(static_cast(font)->family()); +} + +extern "C" VQT6_API void vqt6_qfont_set_point_size(void* font, int point_size) { + if (font == nullptr) return; + static_cast(font)->setPointSize(point_size); +} + +extern "C" VQT6_API int vqt6_qfont_point_size(void* font) { + if (font == nullptr) return 0; + return static_cast(font)->pointSize(); +} + +extern "C" VQT6_API void vqt6_qfont_set_pixel_size(void* font, int pixel_size) { + if (font == nullptr) return; + static_cast(font)->setPixelSize(pixel_size); +} + +extern "C" VQT6_API int vqt6_qfont_pixel_size(void* font) { + if (font == nullptr) return 0; + return static_cast(font)->pixelSize(); +} + +extern "C" VQT6_API void vqt6_qfont_set_bold(void* font, int bold) { + if (font == nullptr) return; + static_cast(font)->setBold(bold != 0); +} + +extern "C" VQT6_API int vqt6_qfont_bold(void* font) { + if (font == nullptr) return 0; + return static_cast(font)->bold() ? 1 : 0; +} + +extern "C" VQT6_API void vqt6_qfont_set_italic(void* font, int italic) { + if (font == nullptr) return; + static_cast(font)->setItalic(italic != 0); +} + +extern "C" VQT6_API int vqt6_qfont_italic(void* font) { + if (font == nullptr) return 0; + return static_cast(font)->italic() ? 1 : 0; +} + +extern "C" VQT6_API void vqt6_qfont_set_underline(void* font, int underline) { + if (font == nullptr) return; + static_cast(font)->setUnderline(underline != 0); +} + +extern "C" VQT6_API int vqt6_qfont_underline(void* font) { + if (font == nullptr) return 0; + return static_cast(font)->underline() ? 1 : 0; +} + +extern "C" VQT6_API void vqt6_qfont_set_strike_out(void* font, int strike_out) { + if (font == nullptr) return; + static_cast(font)->setStrikeOut(strike_out != 0); +} + +extern "C" VQT6_API int vqt6_qfont_strike_out(void* font) { + if (font == nullptr) return 0; + return static_cast(font)->strikeOut() ? 1 : 0; +} + +extern "C" VQT6_API void vqt6_qfont_set_weight(void* font, int weight) { + if (font == nullptr) return; + static_cast(font)->setWeight(static_cast(weight)); +} + +extern "C" VQT6_API int vqt6_qfont_weight(void* font) { + if (font == nullptr) return 0; + return static_cast(static_cast(font)->weight()); +} + +extern "C" VQT6_API void vqt6_qfont_free(void* font) { + delete static_cast(font); +} + +// ============================================================ +// QFontMetrics +// ============================================================ +extern "C" VQT6_API void* vqt6_qfontmetrics_create(void* font) { + if (font == nullptr) return nullptr; + return new QFontMetrics(*static_cast(font)); +} + +extern "C" VQT6_API int vqt6_qfontmetrics_width(void* fm, void* text) { + if (fm == nullptr || text == nullptr) return 0; + return static_cast(fm)->horizontalAdvance(*static_cast(text)); +} + +extern "C" VQT6_API int vqt6_qfontmetrics_height(void* fm) { + if (fm == nullptr) return 0; + return static_cast(fm)->height(); +} + +extern "C" VQT6_API int vqt6_qfontmetrics_ascent(void* fm) { + if (fm == nullptr) return 0; + return static_cast(fm)->ascent(); +} + +extern "C" VQT6_API int vqt6_qfontmetrics_descent(void* fm) { + if (fm == nullptr) return 0; + return static_cast(fm)->descent(); +} + +extern "C" VQT6_API void vqt6_qfontmetrics_free(void* fm) { + delete static_cast(fm); +} + +// ============================================================ +// QPixmap +// ============================================================ +extern "C" VQT6_API void* vqt6_qpixmap_create(void) { + return new QPixmap(); +} + +extern "C" VQT6_API void* vqt6_qpixmap_create_with_size(int w, int h) { + return new QPixmap(w, h); +} + +extern "C" VQT6_API int vqt6_qpixmap_load(void* pm, void* file_name) { + if (pm == nullptr || file_name == nullptr) return 0; + return static_cast(pm)->load(*static_cast(file_name)) ? 1 : 0; +} + +extern "C" VQT6_API int vqt6_qpixmap_load_from_data(void* pm, const void* data, size_t size) { + if (pm == nullptr || data == nullptr) return 0; + return static_cast(pm)->loadFromData(static_cast(data), static_cast(size)) ? 1 : 0; +} + +extern "C" VQT6_API int vqt6_qpixmap_save(void* pm, void* file_name) { + if (pm == nullptr || file_name == nullptr) return 0; + return static_cast(pm)->save(*static_cast(file_name)) ? 1 : 0; +} + +extern "C" VQT6_API int vqt6_qpixmap_width(void* pm) { + if (pm == nullptr) return 0; + return static_cast(pm)->width(); +} + +extern "C" VQT6_API int vqt6_qpixmap_height(void* pm) { + if (pm == nullptr) return 0; + return static_cast(pm)->height(); +} + +extern "C" VQT6_API int vqt6_qpixmap_is_null(void* pm) { + if (pm == nullptr) return 0; + return static_cast(pm)->isNull() ? 1 : 0; +} + +extern "C" VQT6_API void* vqt6_qpixmap_scaled(void* pm, int w, int h) { + if (pm == nullptr) return nullptr; + return new QPixmap(static_cast(pm)->scaled(w, h)); +} + +extern "C" VQT6_API void vqt6_qpixmap_fill(void* pm, void* color) { + if (pm == nullptr) return; + if (color != nullptr) { + static_cast(pm)->fill(*static_cast(color)); + } else { + static_cast(pm)->fill(); + } +} + +extern "C" VQT6_API void vqt6_qpixmap_free(void* pm) { + delete static_cast(pm); +} + +// ============================================================ +// QImage +// ============================================================ +extern "C" VQT6_API void* vqt6_qimage_create(void) { + return new QImage(); +} + +extern "C" VQT6_API void* vqt6_qimage_create_with_size(int w, int h, int format) { + return new QImage(w, h, static_cast(format)); +} + +extern "C" VQT6_API int vqt6_qimage_load(void* img, void* file_name) { + if (img == nullptr || file_name == nullptr) return 0; + return static_cast(img)->load(*static_cast(file_name)) ? 1 : 0; +} + +extern "C" VQT6_API int vqt6_qimage_save(void* img, void* file_name) { + if (img == nullptr || file_name == nullptr) return 0; + return static_cast(img)->save(*static_cast(file_name)) ? 1 : 0; +} + +extern "C" VQT6_API int vqt6_qimage_width(void* img) { + if (img == nullptr) return 0; + return static_cast(img)->width(); +} + +extern "C" VQT6_API int vqt6_qimage_height(void* img) { + if (img == nullptr) return 0; + return static_cast(img)->height(); +} + +extern "C" VQT6_API int vqt6_qimage_format(void* img) { + if (img == nullptr) return 0; + return static_cast(static_cast(img)->format()); +} + +extern "C" VQT6_API int vqt6_qimage_is_null(void* img) { + if (img == nullptr) return 0; + return static_cast(img)->isNull() ? 1 : 0; +} + +extern "C" VQT6_API void vqt6_qimage_fill(void* img, void* color) { + if (img == nullptr) return; + if (color != nullptr) { + static_cast(img)->fill(*static_cast(color)); + } +} + +extern "C" VQT6_API void* vqt6_qimage_scaled(void* img, int w, int h) { + if (img == nullptr) return nullptr; + return new QImage(static_cast(img)->scaled(w, h)); +} + +extern "C" VQT6_API void vqt6_qimage_free(void* img) { + delete static_cast(img); +} + +// ============================================================ +// QPainter +// ============================================================ +extern "C" VQT6_API void* vqt6_qpainter_create(void) { + return new QPainter(); +} + +extern "C" VQT6_API int vqt6_qpainter_begin(void* p, void* device) { + if (p == nullptr || device == nullptr) return 0; + return static_cast(p)->begin(static_cast(device)) ? 1 : 0; +} + +extern "C" VQT6_API int vqt6_qpainter_end(void* p) { + if (p == nullptr) return 0; + return static_cast(p)->end() ? 1 : 0; +} + +extern "C" VQT6_API int vqt6_qpainter_is_active(void* p) { + if (p == nullptr) return 0; + return static_cast(p)->isActive() ? 1 : 0; +} + +extern "C" VQT6_API void vqt6_qpainter_set_pen(void* p, void* pen) { + if (p == nullptr || pen == nullptr) return; + static_cast(p)->setPen(*static_cast(pen)); +} + +extern "C" VQT6_API void vqt6_qpainter_set_brush(void* p, void* brush) { + if (p == nullptr || brush == nullptr) return; + static_cast(p)->setBrush(*static_cast(brush)); +} + +extern "C" VQT6_API void vqt6_qpainter_set_font(void* p, void* font) { + if (p == nullptr || font == nullptr) return; + static_cast(p)->setFont(*static_cast(font)); +} + +extern "C" VQT6_API void* vqt6_qpainter_pen(void* p) { + if (p == nullptr) return nullptr; + return new QPen(static_cast(p)->pen()); +} + +extern "C" VQT6_API void* vqt6_qpainter_brush(void* p) { + if (p == nullptr) return nullptr; + return new QBrush(static_cast(p)->brush()); +} + +extern "C" VQT6_API void* vqt6_qpainter_font(void* p) { + if (p == nullptr) return nullptr; + return new QFont(static_cast(p)->font()); +} + +extern "C" VQT6_API void vqt6_qpainter_set_opacity(void* p, double opacity) { + if (p == nullptr) return; + static_cast(p)->setOpacity(opacity); +} + +extern "C" VQT6_API double vqt6_qpainter_opacity(void* p) { + if (p == nullptr) return 1.0; + return static_cast(p)->opacity(); +} + +extern "C" VQT6_API void vqt6_qpainter_draw_line(void* p, int x1, int y1, int x2, int y2) { + if (p == nullptr) return; + static_cast(p)->drawLine(x1, y1, x2, y2); +} + +extern "C" VQT6_API void vqt6_qpainter_draw_rect(void* p, int x, int y, int w, int h) { + if (p == nullptr) return; + static_cast(p)->drawRect(x, y, w, h); +} + +extern "C" VQT6_API void vqt6_qpainter_fill_rect(void* p, int x, int y, int w, int h, void* color) { + if (p == nullptr || color == nullptr) return; + static_cast(p)->fillRect(x, y, w, h, *static_cast(color)); +} + +extern "C" VQT6_API void vqt6_qpainter_draw_ellipse(void* p, int x, int y, int w, int h) { + if (p == nullptr) return; + static_cast(p)->drawEllipse(x, y, w, h); +} + +extern "C" VQT6_API void vqt6_qpainter_draw_arc(void* p, int x, int y, int w, int h, int start_angle, int span_angle) { + if (p == nullptr) return; + static_cast(p)->drawArc(x, y, w, h, start_angle, span_angle); +} + +extern "C" VQT6_API void vqt6_qpainter_draw_chord(void* p, int x, int y, int w, int h, int start_angle, int span_angle) { + if (p == nullptr) return; + static_cast(p)->drawChord(x, y, w, h, start_angle, span_angle); +} + +extern "C" VQT6_API void vqt6_qpainter_draw_pie(void* p, int x, int y, int w, int h, int start_angle, int span_angle) { + if (p == nullptr) return; + static_cast(p)->drawPie(x, y, w, h, start_angle, span_angle); +} + +extern "C" VQT6_API void vqt6_qpainter_draw_polygon(void* p, int* points, int point_count) { + if (p == nullptr || points == nullptr || point_count < 1) return; + QPolygon polygon; + for (int i = 0; i < point_count; ++i) { + polygon << QPoint(points[i*2], points[i*2+1]); + } + static_cast(p)->drawPolygon(polygon); +} + +extern "C" VQT6_API void vqt6_qpainter_draw_polyline(void* p, int* points, int point_count) { + if (p == nullptr || points == nullptr || point_count < 1) return; + QPolygon polyline; + for (int i = 0; i < point_count; ++i) { + polyline << QPoint(points[i*2], points[i*2+1]); + } + static_cast(p)->drawPolyline(polyline); +} + +extern "C" VQT6_API void vqt6_qpainter_draw_point(void* p, int x, int y) { + if (p == nullptr) return; + static_cast(p)->drawPoint(x, y); +} + +extern "C" VQT6_API void vqt6_qpainter_draw_points(void* p, int* points, int point_count) { + if (p == nullptr || points == nullptr || point_count < 1) return; + QPolygon pts; + for (int i = 0; i < point_count; ++i) { + pts << QPoint(points[i*2], points[i*2+1]); + } + static_cast(p)->drawPoints(pts); +} + +extern "C" VQT6_API void vqt6_qpainter_draw_text(void* p, int x, int y, void* text) { + if (p == nullptr || text == nullptr) return; + static_cast(p)->drawText(x, y, *static_cast(text)); +} + +extern "C" VQT6_API void vqt6_qpainter_draw_text_in_rect(void* p, int x, int y, int w, int h, int flags, void* text) { + if (p == nullptr || text == nullptr) return; + static_cast(p)->drawText(x, y, w, h, flags, *static_cast(text)); +} + +extern "C" VQT6_API void vqt6_qpainter_draw_pixmap(void* p, int x, int y, void* pixmap) { + if (p == nullptr || pixmap == nullptr) return; + static_cast(p)->drawPixmap(x, y, *static_cast(pixmap)); +} + +extern "C" VQT6_API void vqt6_qpainter_draw_image(void* p, int x, int y, void* image) { + if (p == nullptr || image == nullptr) return; + static_cast(p)->drawImage(x, y, *static_cast(image)); +} + +extern "C" VQT6_API void vqt6_qpainter_draw_tiled_pixmap(void* p, int x, int y, int w, int h, void* pixmap) { + if (p == nullptr || pixmap == nullptr) return; + static_cast(p)->drawTiledPixmap(x, y, w, h, *static_cast(pixmap)); +} + +extern "C" VQT6_API void vqt6_qpainter_translate(void* p, int dx, int dy) { + if (p == nullptr) return; + static_cast(p)->translate(dx, dy); +} + +extern "C" VQT6_API void vqt6_qpainter_rotate(void* p, double angle) { + if (p == nullptr) return; + static_cast(p)->rotate(angle); +} + +extern "C" VQT6_API void vqt6_qpainter_scale(void* p, double sx, double sy) { + if (p == nullptr) return; + static_cast(p)->scale(sx, sy); +} + +extern "C" VQT6_API void vqt6_qpainter_reset_transform(void* p) { + if (p == nullptr) return; + static_cast(p)->resetTransform(); +} + +extern "C" VQT6_API void vqt6_qpainter_save(void* p) { + if (p == nullptr) return; + static_cast(p)->save(); +} + +extern "C" VQT6_API void vqt6_qpainter_restore(void* p) { + if (p == nullptr) return; + static_cast(p)->restore(); +} + +extern "C" VQT6_API void vqt6_qpainter_free(void* p) { + delete static_cast(p); +} + +// ============================================================ +// QPen +// ============================================================ +extern "C" VQT6_API void* vqt6_qpen_create(void) { + return new QPen(); +} + +extern "C" VQT6_API void* vqt6_qpen_create_with_color(void* color) { + if (color == nullptr) return new QPen(); + return new QPen(*static_cast(color)); +} + +extern "C" VQT6_API void* vqt6_qpen_create_with_color_width(void* color, int width) { + if (color == nullptr) return new QPen(); + return new QPen(*static_cast(color), width); +} + +extern "C" VQT6_API void vqt6_qpen_set_color(void* pen, void* color) { + if (pen == nullptr || color == nullptr) return; + static_cast(pen)->setColor(*static_cast(color)); +} + +extern "C" VQT6_API void* vqt6_qpen_color(void* pen) { + if (pen == nullptr) return nullptr; + return new QColor(static_cast(pen)->color()); +} + +extern "C" VQT6_API void vqt6_qpen_set_width(void* pen, int width) { + if (pen == nullptr) return; + static_cast(pen)->setWidth(width); +} + +extern "C" VQT6_API int vqt6_qpen_width(void* pen) { + if (pen == nullptr) return 0; + return static_cast(pen)->width(); +} + +extern "C" VQT6_API void vqt6_qpen_set_style(void* pen, int style) { + if (pen == nullptr) return; + static_cast(pen)->setStyle(static_cast(style)); +} + +extern "C" VQT6_API int vqt6_qpen_style(void* pen) { + if (pen == nullptr) return 0; + return static_cast(static_cast(pen)->style()); +} + +extern "C" VQT6_API void vqt6_qpen_free(void* pen) { + delete static_cast(pen); +} + +// ============================================================ +// QBrush +// ============================================================ +extern "C" VQT6_API void* vqt6_qbrush_create(void) { + return new QBrush(); +} + +extern "C" VQT6_API void* vqt6_qbrush_create_with_color(void* color) { + if (color == nullptr) return new QBrush(); + return new QBrush(*static_cast(color)); +} + +extern "C" VQT6_API void* vqt6_qbrush_create_with_style(int style) { + return new QBrush(static_cast(style)); +} + +extern "C" VQT6_API void vqt6_qbrush_set_color(void* brush, void* color) { + if (brush == nullptr || color == nullptr) return; + static_cast(brush)->setColor(*static_cast(color)); +} + +extern "C" VQT6_API void* vqt6_qbrush_color(void* brush) { + if (brush == nullptr) return nullptr; + return new QColor(static_cast(brush)->color()); +} + +extern "C" VQT6_API void vqt6_qbrush_set_style(void* brush, int style) { + if (brush == nullptr) return; + static_cast(brush)->setStyle(static_cast(style)); +} + +extern "C" VQT6_API int vqt6_qbrush_style(void* brush) { + if (brush == nullptr) return 0; + return static_cast(static_cast(brush)->style()); +} + +extern "C" VQT6_API void vqt6_qbrush_free(void* brush) { + delete static_cast(brush); +} + +// ============================================================ +// QIcon +// ============================================================ +extern "C" VQT6_API void* vqt6_qicon_create(void) { + return new QIcon(); +} + +extern "C" VQT6_API void* vqt6_qicon_create_with_file(void* file_name) { + if (file_name == nullptr) return new QIcon(); + return new QIcon(*static_cast(file_name)); +} + +extern "C" VQT6_API void vqt6_qicon_add_file(void* icon, void* file_name) { + if (icon == nullptr || file_name == nullptr) return; + static_cast(icon)->addFile(*static_cast(file_name)); +} + +extern "C" VQT6_API void vqt6_qicon_add_pixmap(void* icon, void* pixmap) { + if (icon == nullptr || pixmap == nullptr) return; + static_cast(icon)->addPixmap(*static_cast(pixmap)); +} + +extern "C" VQT6_API int vqt6_qicon_is_null(void* icon) { + if (icon == nullptr) return 0; + return static_cast(icon)->isNull() ? 1 : 0; +} + +extern "C" VQT6_API void* vqt6_qicon_pixmap(void* icon, int w, int h) { + if (icon == nullptr) return nullptr; + return new QPixmap(static_cast(icon)->pixmap(w, h)); +} + +extern "C" VQT6_API void vqt6_qicon_free(void* icon) { + delete static_cast(icon); +} + +// ============================================================ +// QCursor +// ============================================================ +extern "C" VQT6_API void* vqt6_qcursor_create(void) { + return new QCursor(); +} + +extern "C" VQT6_API void* vqt6_qcursor_create_with_shape(int shape) { + return new QCursor(static_cast(shape)); +} + +extern "C" VQT6_API void vqt6_qcursor_pos(int* x, int* y) { + QPoint p = QCursor::pos(); + if (x != nullptr) *x = p.x(); + if (y != nullptr) *y = p.y(); +} + +extern "C" VQT6_API void vqt6_qcursor_set_pos(int x, int y) { + QCursor::setPos(x, y); +} + +extern "C" VQT6_API void vqt6_qcursor_set_shape(void* cursor, int shape) { + if (cursor == nullptr) return; + static_cast(cursor)->setShape(static_cast(shape)); +} + +extern "C" VQT6_API int vqt6_qcursor_shape(void* cursor) { + if (cursor == nullptr) return 0; + return static_cast(static_cast(cursor)->shape()); +} + +extern "C" VQT6_API void vqt6_qcursor_free(void* cursor) { + delete static_cast(cursor); +} + +// ============================================================ +// QKeyEvent +// ============================================================ +extern "C" VQT6_API void* vqt6_qkeyevent_create(int type, int key, int modifiers, void* text) { + QString* t = static_cast(text); + return new QKeyEvent(static_cast(type), key, static_cast(modifiers), + t != nullptr ? *t : QString()); +} + +extern "C" VQT6_API int vqt6_qkeyevent_key(void* event) { + if (event == nullptr) return 0; + return static_cast(event)->key(); +} + +extern "C" VQT6_API void* vqt6_qkeyevent_text(void* event) { + if (event == nullptr) return nullptr; + return new QString(static_cast(event)->text()); +} + +extern "C" VQT6_API int vqt6_qkeyevent_modifiers(void* event) { + if (event == nullptr) return 0; + return static_cast(static_cast(event)->modifiers()); +} + +extern "C" VQT6_API int vqt6_qkeyevent_is_auto_repeat(void* event) { + if (event == nullptr) return 0; + return static_cast(event)->isAutoRepeat() ? 1 : 0; +} + +extern "C" VQT6_API void vqt6_qkeyevent_free(void* event) { + delete static_cast(event); +} + +// ============================================================ +// QMouseEvent +// ============================================================ +extern "C" VQT6_API void* vqt6_qmouseevent_create(int type, void* local_pos, int button, int buttons, int modifiers) { + QPointF* lp = static_cast(local_pos); + return new QMouseEvent( + static_cast(type), + lp != nullptr ? *lp : QPointF(0, 0), + Qt::NoButton, + static_cast(button), + static_cast(modifiers) + ); +} + +extern "C" VQT6_API int vqt6_qmouseevent_button(void* event) { + if (event == nullptr) return 0; + return static_cast(static_cast(event)->button()); +} + +extern "C" VQT6_API int vqt6_qmouseevent_buttons(void* event) { + if (event == nullptr) return 0; + return static_cast(static_cast(event)->buttons()); +} + +extern "C" VQT6_API int vqt6_qmouseevent_x(void* event) { + if (event == nullptr) return 0; + return static_cast(static_cast(event)->position().x()); +} + +extern "C" VQT6_API int vqt6_qmouseevent_y(void* event) { + if (event == nullptr) return 0; + return static_cast(static_cast(event)->position().y()); +} + +extern "C" VQT6_API int vqt6_qmouseevent_global_x(void* event) { + if (event == nullptr) return 0; + return static_cast(static_cast(event)->globalPosition().x()); +} + +extern "C" VQT6_API int vqt6_qmouseevent_global_y(void* event) { + if (event == nullptr) return 0; + return static_cast(static_cast(event)->globalPosition().y()); +} + +extern "C" VQT6_API int vqt6_qmouseevent_modifiers(void* event) { + if (event == nullptr) return 0; + return static_cast(static_cast(event)->modifiers()); +} + +extern "C" VQT6_API void vqt6_qmouseevent_free(void* event) { + delete static_cast(event); +} + +// ============================================================ +// QResizeEvent / QPaintEvent / QCloseEvent +// ============================================================ +extern "C" VQT6_API void* vqt6_qresizeevent_create(int width, int height, int old_width, int old_height) { + return new QResizeEvent(QSize(width, height), QSize(old_width, old_height)); +} + +extern "C" VQT6_API void vqt6_qresizeevent_size(void* event, int* w, int* h) { + if (event == nullptr) return; + QSize s = static_cast(event)->size(); + if (w != nullptr) *w = s.width(); + if (h != nullptr) *h = s.height(); +} + +extern "C" VQT6_API void vqt6_qresizeevent_old_size(void* event, int* w, int* h) { + if (event == nullptr) return; + QSize s = static_cast(event)->oldSize(); + if (w != nullptr) *w = s.width(); + if (h != nullptr) *h = s.height(); +} + +extern "C" VQT6_API void vqt6_qresizeevent_free(void* event) { + delete static_cast(event); +} + +extern "C" VQT6_API void* vqt6_qpaintevent_create(int rect_x, int rect_y, int rect_w, int rect_h) { + return new QPaintEvent(QRect(rect_x, rect_y, rect_w, rect_h)); +} + +extern "C" VQT6_API void vqt6_qpaintevent_rect(void* event, int* x, int* y, int* w, int* h) { + if (event == nullptr) return; + QRect r = static_cast(event)->rect(); + if (x != nullptr) *x = r.x(); + if (y != nullptr) *y = r.y(); + if (w != nullptr) *w = r.width(); + if (h != nullptr) *h = r.height(); +} + +extern "C" VQT6_API void vqt6_qpaintevent_free(void* event) { + delete static_cast(event); +} + +extern "C" VQT6_API void* vqt6_qcloseevent_create(void) { + return new QCloseEvent(); +} + +extern "C" VQT6_API int vqt6_qcloseevent_is_accepted(void* event) { + if (event == nullptr) return 0; + return static_cast(event)->isAccepted() ? 1 : 0; +} + +extern "C" VQT6_API void vqt6_qcloseevent_accept(void* event) { + if (event == nullptr) return; + static_cast(event)->accept(); +} + +extern "C" VQT6_API void vqt6_qcloseevent_ignore(void* event) { + if (event == nullptr) return; + static_cast(event)->ignore(); +} + +extern "C" VQT6_API void vqt6_qcloseevent_free(void* event) { + delete static_cast(event); +} diff --git a/includes/vqt6/_bridge_gui.h b/includes/vqt6/_bridge_gui.h new file mode 100644 index 0000000..d2bb224 --- /dev/null +++ b/includes/vqt6/_bridge_gui.h @@ -0,0 +1,231 @@ +// ============================================================ +// vqt6/_bridge_gui.h — QtGui C 桥接函数声明 +// ============================================================ + +#ifndef VQT6_BRIDGE_GUI_H +#define VQT6_BRIDGE_GUI_H + +#include "_bridge.h" + +#ifdef __cplusplus +extern "C" { +#endif + +// ============================================================ +// QColor +// ============================================================ +VQT6_API void* vqt6_qcolor_create_rgb(int r, int g, int b); +VQT6_API void* vqt6_qcolor_create_rgba(int r, int g, int b, int a); +VQT6_API void* vqt6_qcolor_create_name(void* name); +VQT6_API void* vqt6_qcolor_create_hex(void* hex_str); +VQT6_API int vqt6_qcolor_red(void* c); +VQT6_API int vqt6_qcolor_green(void* c); +VQT6_API int vqt6_qcolor_blue(void* c); +VQT6_API int vqt6_qcolor_alpha(void* c); +VQT6_API void vqt6_qcolor_set_red(void* c, int r); +VQT6_API void vqt6_qcolor_set_green(void* c, int g); +VQT6_API void vqt6_qcolor_set_blue(void* c, int b); +VQT6_API void vqt6_qcolor_set_alpha(void* c, int a); +VQT6_API void vqt6_qcolor_set_rgb(void* c, int r, int g, int b); +VQT6_API void vqt6_qcolor_set_rgba(void* c, int r, int g, int b, int a); +VQT6_API void* vqt6_qcolor_name(void* c); +VQT6_API int vqt6_qcolor_is_valid(void* c); +VQT6_API void vqt6_qcolor_free(void* c); + +// ============================================================ +// QFont +// ============================================================ +VQT6_API void* vqt6_qfont_create(void); +VQT6_API void* vqt6_qfont_create_with_family(void* family); +VQT6_API void* vqt6_qfont_create_with_family_size(void* family, int point_size); +VQT6_API void vqt6_qfont_set_family(void* font, void* family); +VQT6_API void* vqt6_qfont_family(void* font); +VQT6_API void vqt6_qfont_set_point_size(void* font, int point_size); +VQT6_API int vqt6_qfont_point_size(void* font); +VQT6_API void vqt6_qfont_set_pixel_size(void* font, int pixel_size); +VQT6_API int vqt6_qfont_pixel_size(void* font); +VQT6_API void vqt6_qfont_set_bold(void* font, int bold); +VQT6_API int vqt6_qfont_bold(void* font); +VQT6_API void vqt6_qfont_set_italic(void* font, int italic); +VQT6_API int vqt6_qfont_italic(void* font); +VQT6_API void vqt6_qfont_set_underline(void* font, int underline); +VQT6_API int vqt6_qfont_underline(void* font); +VQT6_API void vqt6_qfont_set_strike_out(void* font, int strike_out); +VQT6_API int vqt6_qfont_strike_out(void* font); +VQT6_API void vqt6_qfont_set_weight(void* font, int weight); +VQT6_API int vqt6_qfont_weight(void* font); +VQT6_API void vqt6_qfont_free(void* font); + +// ============================================================ +// QFontMetrics +// ============================================================ +VQT6_API void* vqt6_qfontmetrics_create(void* font); +VQT6_API int vqt6_qfontmetrics_width(void* fm, void* text); +VQT6_API int vqt6_qfontmetrics_height(void* fm); +VQT6_API int vqt6_qfontmetrics_ascent(void* fm); +VQT6_API int vqt6_qfontmetrics_descent(void* fm); +VQT6_API void vqt6_qfontmetrics_free(void* fm); + +// ============================================================ +// QPixmap +// ============================================================ +VQT6_API void* vqt6_qpixmap_create(void); +VQT6_API void* vqt6_qpixmap_create_with_size(int w, int h); +VQT6_API int vqt6_qpixmap_load(void* pm, void* file_name); +VQT6_API int vqt6_qpixmap_load_from_data(void* pm, const void* data, size_t size); +VQT6_API int vqt6_qpixmap_save(void* pm, void* file_name); +VQT6_API int vqt6_qpixmap_width(void* pm); +VQT6_API int vqt6_qpixmap_height(void* pm); +VQT6_API int vqt6_qpixmap_is_null(void* pm); +VQT6_API void* vqt6_qpixmap_scaled(void* pm, int w, int h); +VQT6_API void vqt6_qpixmap_fill(void* pm, void* color); +VQT6_API void vqt6_qpixmap_free(void* pm); + +// ============================================================ +// QImage +// ============================================================ +VQT6_API void* vqt6_qimage_create(void); +VQT6_API void* vqt6_qimage_create_with_size(int w, int h, int format); +VQT6_API int vqt6_qimage_load(void* img, void* file_name); +VQT6_API int vqt6_qimage_save(void* img, void* file_name); +VQT6_API int vqt6_qimage_width(void* img); +VQT6_API int vqt6_qimage_height(void* img); +VQT6_API int vqt6_qimage_format(void* img); +VQT6_API int vqt6_qimage_is_null(void* img); +VQT6_API void vqt6_qimage_fill(void* img, void* color); +VQT6_API void* vqt6_qimage_scaled(void* img, int w, int h); +VQT6_API void vqt6_qimage_free(void* img); + +// ============================================================ +// QPainter +// ============================================================ +VQT6_API void* vqt6_qpainter_create(void); +VQT6_API int vqt6_qpainter_begin(void* p, void* device); +VQT6_API int vqt6_qpainter_end(void* p); +VQT6_API int vqt6_qpainter_is_active(void* p); +VQT6_API void vqt6_qpainter_set_pen(void* p, void* pen); +VQT6_API void vqt6_qpainter_set_brush(void* p, void* brush); +VQT6_API void vqt6_qpainter_set_font(void* p, void* font); +VQT6_API void* vqt6_qpainter_pen(void* p); +VQT6_API void* vqt6_qpainter_brush(void* p); +VQT6_API void* vqt6_qpainter_font(void* p); +VQT6_API void vqt6_qpainter_set_opacity(void* p, double opacity); +VQT6_API double vqt6_qpainter_opacity(void* p); +VQT6_API void vqt6_qpainter_draw_line(void* p, int x1, int y1, int x2, int y2); +VQT6_API void vqt6_qpainter_draw_rect(void* p, int x, int y, int w, int h); +VQT6_API void vqt6_qpainter_fill_rect(void* p, int x, int y, int w, int h, void* color); +VQT6_API void vqt6_qpainter_draw_ellipse(void* p, int x, int y, int w, int h); +VQT6_API void vqt6_qpainter_draw_arc(void* p, int x, int y, int w, int h, int start_angle, int span_angle); +VQT6_API void vqt6_qpainter_draw_chord(void* p, int x, int y, int w, int h, int start_angle, int span_angle); +VQT6_API void vqt6_qpainter_draw_pie(void* p, int x, int y, int w, int h, int start_angle, int span_angle); +VQT6_API void vqt6_qpainter_draw_polygon(void* p, int* points, int point_count); +VQT6_API void vqt6_qpainter_draw_polyline(void* p, int* points, int point_count); +VQT6_API void vqt6_qpainter_draw_point(void* p, int x, int y); +VQT6_API void vqt6_qpainter_draw_points(void* p, int* points, int point_count); +VQT6_API void vqt6_qpainter_draw_text(void* p, int x, int y, void* text); +VQT6_API void vqt6_qpainter_draw_text_in_rect(void* p, int x, int y, int w, int h, int flags, void* text); +VQT6_API void vqt6_qpainter_draw_pixmap(void* p, int x, int y, void* pixmap); +VQT6_API void vqt6_qpainter_draw_image(void* p, int x, int y, void* image); +VQT6_API void vqt6_qpainter_draw_tiled_pixmap(void* p, int x, int y, int w, int h, void* pixmap); +VQT6_API void vqt6_qpainter_translate(void* p, int dx, int dy); +VQT6_API void vqt6_qpainter_rotate(void* p, double angle); +VQT6_API void vqt6_qpainter_scale(void* p, double sx, double sy); +VQT6_API void vqt6_qpainter_reset_transform(void* p); +VQT6_API void vqt6_qpainter_save(void* p); +VQT6_API void vqt6_qpainter_restore(void* p); +VQT6_API void vqt6_qpainter_free(void* p); + +// ============================================================ +// QPen +// ============================================================ +VQT6_API void* vqt6_qpen_create(void); +VQT6_API void* vqt6_qpen_create_with_color(void* color); +VQT6_API void* vqt6_qpen_create_with_color_width(void* color, int width); +VQT6_API void vqt6_qpen_set_color(void* pen, void* color); +VQT6_API void* vqt6_qpen_color(void* pen); +VQT6_API void vqt6_qpen_set_width(void* pen, int width); +VQT6_API int vqt6_qpen_width(void* pen); +VQT6_API void vqt6_qpen_set_style(void* pen, int style); +VQT6_API int vqt6_qpen_style(void* pen); +VQT6_API void vqt6_qpen_free(void* pen); + +// ============================================================ +// QBrush +// ============================================================ +VQT6_API void* vqt6_qbrush_create(void); +VQT6_API void* vqt6_qbrush_create_with_color(void* color); +VQT6_API void* vqt6_qbrush_create_with_style(int style); +VQT6_API void vqt6_qbrush_set_color(void* brush, void* color); +VQT6_API void* vqt6_qbrush_color(void* brush); +VQT6_API void vqt6_qbrush_set_style(void* brush, int style); +VQT6_API int vqt6_qbrush_style(void* brush); +VQT6_API void vqt6_qbrush_free(void* brush); + +// ============================================================ +// QIcon +// ============================================================ +VQT6_API void* vqt6_qicon_create(void); +VQT6_API void* vqt6_qicon_create_with_file(void* file_name); +VQT6_API void vqt6_qicon_add_file(void* icon, void* file_name); +VQT6_API void vqt6_qicon_add_pixmap(void* icon, void* pixmap); +VQT6_API int vqt6_qicon_is_null(void* icon); +VQT6_API void* vqt6_qicon_pixmap(void* icon, int w, int h); +VQT6_API void vqt6_qicon_free(void* icon); + +// ============================================================ +// QCursor +// ============================================================ +VQT6_API void* vqt6_qcursor_create(void); +VQT6_API void* vqt6_qcursor_create_with_shape(int shape); +VQT6_API void vqt6_qcursor_pos(int* x, int* y); +VQT6_API void vqt6_qcursor_set_pos(int x, int y); +VQT6_API void vqt6_qcursor_set_shape(void* cursor, int shape); +VQT6_API int vqt6_qcursor_shape(void* cursor); +VQT6_API void vqt6_qcursor_free(void* cursor); + +// ============================================================ +// QKeyEvent +// ============================================================ +VQT6_API void* vqt6_qkeyevent_create(int type, int key, int modifiers, void* text); +VQT6_API int vqt6_qkeyevent_key(void* event); +VQT6_API void* vqt6_qkeyevent_text(void* event); +VQT6_API int vqt6_qkeyevent_modifiers(void* event); +VQT6_API int vqt6_qkeyevent_is_auto_repeat(void* event); +VQT6_API void vqt6_qkeyevent_free(void* event); + +// ============================================================ +// QMouseEvent +// ============================================================ +VQT6_API void* vqt6_qmouseevent_create(int type, void* local_pos, int button, int buttons, int modifiers); +VQT6_API int vqt6_qmouseevent_button(void* event); +VQT6_API int vqt6_qmouseevent_buttons(void* event); +VQT6_API int vqt6_qmouseevent_x(void* event); +VQT6_API int vqt6_qmouseevent_y(void* event); +VQT6_API int vqt6_qmouseevent_global_x(void* event); +VQT6_API int vqt6_qmouseevent_global_y(void* event); +VQT6_API int vqt6_qmouseevent_modifiers(void* event); +VQT6_API void vqt6_qmouseevent_free(void* event); + +// ============================================================ +// QResizeEvent / QPaintEvent / QCloseEvent +// ============================================================ +VQT6_API void* vqt6_qresizeevent_create(int width, int height, int old_width, int old_height); +VQT6_API void vqt6_qresizeevent_size(void* event, int* w, int* h); +VQT6_API void vqt6_qresizeevent_old_size(void* event, int* w, int* h); +VQT6_API void vqt6_qresizeevent_free(void* event); + +VQT6_API void* vqt6_qpaintevent_create(int rect_x, int rect_y, int rect_w, int rect_h); +VQT6_API void vqt6_qpaintevent_rect(void* event, int* x, int* y, int* w, int* h); +VQT6_API void vqt6_qpaintevent_free(void* event); + +VQT6_API void* vqt6_qcloseevent_create(void); +VQT6_API int vqt6_qcloseevent_is_accepted(void* event); +VQT6_API void vqt6_qcloseevent_accept(void* event); +VQT6_API void vqt6_qcloseevent_ignore(void* event); +VQT6_API void vqt6_qcloseevent_free(void* event); + +#ifdef __cplusplus +} +#endif + +#endif // VQT6_BRIDGE_GUI_H diff --git a/includes/vqt6/_bridge_network.cpp b/includes/vqt6/_bridge_network.cpp new file mode 100644 index 0000000..00cab5e --- /dev/null +++ b/includes/vqt6/_bridge_network.cpp @@ -0,0 +1,519 @@ +// ============================================================ +// vqt6/_bridge_network.cpp — QtNetwork C 桥接层实现 +// ============================================================ + +#include "_bridge.h" +#include "_bridge_network.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// ============================================================ +// QHostAddress +// ============================================================ +extern "C" VQT6_API void* vqt6_qhostaddress_create(void) { + return new QHostAddress(); +} + +extern "C" VQT6_API void* vqt6_qhostaddress_create_with_ipv4(uint32_t ipv4) { + return new QHostAddress(static_cast(ipv4)); +} + +extern "C" VQT6_API void* vqt6_qhostaddress_create_with_string(void* address) { + if (address == nullptr) return new QHostAddress(); + return new QHostAddress(*static_cast(address)); +} + +extern "C" VQT6_API void* vqt6_qhostaddress_create_with_local_host(void) { + return new QHostAddress(QHostAddress::LocalHost); +} + +extern "C" VQT6_API void* vqt6_qhostaddress_create_with_local_ipv4(void) { + return new QHostAddress(QHostAddress::LocalHostIPv4); +} + +extern "C" VQT6_API void* vqt6_qhostaddress_create_with_broadcast(void) { + return new QHostAddress(QHostAddress::Broadcast); +} + +extern "C" VQT6_API void* vqt6_qhostaddress_create_with_any_ipv4(void) { + return new QHostAddress(QHostAddress::AnyIPv4); +} + +extern "C" VQT6_API void* vqt6_qhostaddress_to_string(void* addr) { + if (addr == nullptr) return nullptr; + return new QString(static_cast(addr)->toString()); +} + +extern "C" VQT6_API uint32_t vqt6_qhostaddress_to_ipv4(void* addr) { + if (addr == nullptr) return 0; + return static_cast(static_cast(addr)->toIPv4Address()); +} + +extern "C" VQT6_API int vqt6_qhostaddress_is_null(void* addr) { + if (addr == nullptr) return 0; + return static_cast(addr)->isNull() ? 1 : 0; +} + +extern "C" VQT6_API int vqt6_qhostaddress_is_loopback(void* addr) { + if (addr == nullptr) return 0; + return static_cast(addr)->isLoopback() ? 1 : 0; +} + +extern "C" VQT6_API int vqt6_qhostaddress_is_broadcast(void* addr) { + if (addr == nullptr) return 0; + return static_cast(addr)->isBroadcast() ? 1 : 0; +} + +extern "C" VQT6_API int vqt6_qhostaddress_protocol(void* addr) { + if (addr == nullptr) return 0; + return static_cast(static_cast(addr)->protocol()); +} + +extern "C" VQT6_API void vqt6_qhostaddress_free(void* addr) { + delete static_cast(addr); +} + +// ============================================================ +// QAbstractSocket +// ============================================================ +extern "C" VQT6_API int vqt6_qabstractsocket_state(void* socket) { + if (socket == nullptr) return 0; + return static_cast(static_cast(socket)->state()); +} + +extern "C" VQT6_API int vqt6_qabstractsocket_error(void* socket) { + if (socket == nullptr) return 0; + return static_cast(static_cast(socket)->error()); +} + +extern "C" VQT6_API void* vqt6_qabstractsocket_error_string(void* socket) { + if (socket == nullptr) return nullptr; + return new QString(static_cast(socket)->errorString()); +} + +extern "C" VQT6_API void vqt6_qabstractsocket_connect_to_host(void* socket, void* host_name, uint16_t port) { + if (socket == nullptr || host_name == nullptr) return; + static_cast(socket)->connectToHost(*static_cast(host_name), port); +} + +extern "C" VQT6_API void vqt6_qabstractsocket_connect_to_host_with_addr(void* socket, void* address, uint16_t port) { + if (socket == nullptr || address == nullptr) return; + static_cast(socket)->connectToHost(*static_cast(address), port); +} + +extern "C" VQT6_API void vqt6_qabstractsocket_disconnect_from_host(void* socket) { + if (socket == nullptr) return; + static_cast(socket)->disconnectFromHost(); +} + +extern "C" VQT6_API int vqt6_qabstractsocket_wait_for_connected(void* socket, int timeout_ms) { + if (socket == nullptr) return 0; + return static_cast(socket)->waitForConnected(timeout_ms) ? 1 : 0; +} + +extern "C" VQT6_API int vqt6_qabstractsocket_wait_for_ready_read(void* socket, int timeout_ms) { + if (socket == nullptr) return 0; + return static_cast(socket)->waitForReadyRead(timeout_ms) ? 1 : 0; +} + +extern "C" VQT6_API int vqt6_qabstractsocket_wait_for_bytes_written(void* socket, int timeout_ms) { + if (socket == nullptr) return 0; + return static_cast(socket)->waitForBytesWritten(timeout_ms) ? 1 : 0; +} + +extern "C" VQT6_API int vqt6_qabstractsocket_wait_for_disconnected(void* socket, int timeout_ms) { + if (socket == nullptr) return 0; + return static_cast(socket)->waitForDisconnected(timeout_ms) ? 1 : 0; +} + +extern "C" VQT6_API int vqt6_qabstractsocket_is_valid(void* socket) { + if (socket == nullptr) return 0; + return static_cast(socket)->isValid() ? 1 : 0; +} + +extern "C" VQT6_API int vqt6_qabstractsocket_is_open(void* socket) { + if (socket == nullptr) return 0; + return static_cast(socket)->isOpen() ? 1 : 0; +} + +extern "C" VQT6_API int vqt6_qabstractsocket_flush(void* socket) { + if (socket == nullptr) return 0; + return static_cast(socket)->flush() ? 1 : 0; +} + +extern "C" VQT6_API void vqt6_qabstractsocket_close(void* socket) { + if (socket == nullptr) return; + static_cast(socket)->close(); +} + +extern "C" VQT6_API void vqt6_qabstractsocket_abort(void* socket) { + if (socket == nullptr) return; + static_cast(socket)->abort(); +} + +extern "C" VQT6_API size_t vqt6_qabstractsocket_read(void* socket, void* buf, size_t max_size) { + if (socket == nullptr || buf == nullptr) return 0; + return static_cast(static_cast(socket)->read(static_cast(buf), static_cast(max_size))); +} + +extern "C" VQT6_API void* vqt6_qabstractsocket_read_all(void* socket, size_t* out_size) { + if (socket == nullptr) return nullptr; + QByteArray ba = static_cast(socket)->readAll(); + if (out_size != nullptr) *out_size = static_cast(ba.size()); + return ba.data(); +} + +extern "C" VQT6_API size_t vqt6_qabstractsocket_write(void* socket, const void* data, size_t size) { + if (socket == nullptr || data == nullptr) return 0; + return static_cast(static_cast(socket)->write(static_cast(data), static_cast(size))); +} + +extern "C" VQT6_API size_t vqt6_qabstractsocket_bytes_available(void* socket) { + if (socket == nullptr) return 0; + return static_cast(static_cast(socket)->bytesAvailable()); +} + +extern "C" VQT6_API size_t vqt6_qabstractsocket_bytes_to_write(void* socket) { + if (socket == nullptr) return 0; + return static_cast(static_cast(socket)->bytesToWrite()); +} + +extern "C" VQT6_API void* vqt6_qabstractsocket_peer_address(void* socket) { + if (socket == nullptr) return nullptr; + return new QHostAddress(static_cast(socket)->peerAddress()); +} + +extern "C" VQT6_API uint16_t vqt6_qabstractsocket_peer_port(void* socket) { + if (socket == nullptr) return 0; + return static_cast(static_cast(socket)->peerPort()); +} + +extern "C" VQT6_API void* vqt6_qabstractsocket_local_address(void* socket) { + if (socket == nullptr) return nullptr; + return new QHostAddress(static_cast(socket)->localAddress()); +} + +extern "C" VQT6_API uint16_t vqt6_qabstractsocket_local_port(void* socket) { + if (socket == nullptr) return 0; + return static_cast(static_cast(socket)->localPort()); +} + +// ============================================================ +// QTcpSocket +// ============================================================ +extern "C" VQT6_API void* vqt6_qtcpsocket_create(void) { + return new QTcpSocket(); +} + +extern "C" VQT6_API void* vqt6_qtcpsocket_create_with_parent(void* parent) { + if (parent == nullptr) return nullptr; + return new QTcpSocket(static_cast(parent)); +} + +extern "C" VQT6_API void vqt6_qtcpsocket_connect_to_host(void* socket, void* host_name, uint16_t port, int mode) { + if (socket == nullptr || host_name == nullptr) return; + static_cast(socket)->connectToHost(*static_cast(host_name), port, + static_cast(mode)); +} + +extern "C" VQT6_API void vqt6_qtcpsocket_connect_to_host_with_addr(void* socket, void* address, uint16_t port, int mode) { + if (socket == nullptr || address == nullptr) return; + static_cast(socket)->connectToHost(*static_cast(address), port, + static_cast(mode)); +} + +extern "C" VQT6_API int vqt6_qtcpsocket_set_socket_descriptor(void* socket, intptr_t socket_descriptor) { + if (socket == nullptr) return 0; + return static_cast(socket)->setSocketDescriptor(static_cast(socket_descriptor)) ? 1 : 0; +} + +extern "C" VQT6_API intptr_t vqt6_qtcpsocket_socket_descriptor(void* socket) { + if (socket == nullptr) return -1; + return static_cast(static_cast(socket)->socketDescriptor()); +} + +extern "C" VQT6_API void vqt6_qtcpsocket_set_proxy(void* socket, int proxy_type) { + Q_UNUSED(socket); + Q_UNUSED(proxy_type); + // QNetworkProxy 配置在更高层 +} + +extern "C" VQT6_API void vqt6_qtcpsocket_abort(void* socket) { + if (socket == nullptr) return; + static_cast(socket)->abort(); +} + +// ============================================================ +// QUdpSocket +// ============================================================ +extern "C" VQT6_API void* vqt6_qudpsocket_create(void) { + return new QUdpSocket(); +} + +extern "C" VQT6_API void* vqt6_qudpsocket_create_with_parent(void* parent) { + if (parent == nullptr) return nullptr; + return new QUdpSocket(static_cast(parent)); +} + +extern "C" VQT6_API int vqt6_qudpsocket_bind(void* socket, uint16_t port) { + if (socket == nullptr) return 0; + return static_cast(socket)->bind(port) ? 1 : 0; +} + +extern "C" VQT6_API int vqt6_qudpsocket_bind_with_addr(void* socket, void* address, uint16_t port) { + if (socket == nullptr || address == nullptr) return 0; + return static_cast(socket)->bind(*static_cast(address), port) ? 1 : 0; +} + +extern "C" VQT6_API void vqt6_qudpsocket_close(void* socket) { + if (socket == nullptr) return; + static_cast(socket)->close(); +} + +extern "C" VQT6_API size_t vqt6_qudpsocket_write_datagram(void* socket, const void* data, size_t size, void* host, uint16_t port) { + if (socket == nullptr || data == nullptr || host == nullptr) return 0; + return static_cast(static_cast(socket)->writeDatagram( + static_cast(data), static_cast(size), + *static_cast(host), port)); +} + +extern "C" VQT6_API size_t vqt6_qudpsocket_read_datagram(void* socket, void* data, size_t max_size, void* host, uint16_t* port) { + if (socket == nullptr || data == nullptr) return 0; + QHostAddress sender; + quint16 sender_port = 0; + qint64 n = static_cast(socket)->readDatagram( + static_cast(data), static_cast(max_size), &sender, &sender_port); + if (host != nullptr) { + QHostAddress* dst = static_cast(host); + *dst = sender; + } + if (port != nullptr) { + *port = sender_port; + } + return static_cast(n); +} + +extern "C" VQT6_API int vqt6_qudpsocket_has_pending_datagrams(void* socket) { + if (socket == nullptr) return 0; + return static_cast(socket)->hasPendingDatagrams() ? 1 : 0; +} + +extern "C" VQT6_API size_t vqt6_qudpsocket_pending_datagram_size(void* socket) { + if (socket == nullptr) return 0; + return static_cast(static_cast(socket)->pendingDatagramSize()); +} + +extern "C" VQT6_API int vqt6_qudpsocket_join_multicast_group(void* socket, void* group_address) { + if (socket == nullptr || group_address == nullptr) return 0; + return static_cast(socket)->joinMulticastGroup(*static_cast(group_address)) ? 1 : 0; +} + +extern "C" VQT6_API int vqt6_qudpsocket_leave_multicast_group(void* socket, void* group_address) { + if (socket == nullptr || group_address == nullptr) return 0; + return static_cast(socket)->leaveMulticastGroup(*static_cast(group_address)) ? 1 : 0; +} + +// ============================================================ +// QNetworkRequest +// ============================================================ +extern "C" VQT6_API void* vqt6_qnetworkrequest_create(void) { + return new QNetworkRequest(); +} + +extern "C" VQT6_API void* vqt6_qnetworkrequest_create_with_url(void* url) { + if (url == nullptr) return new QNetworkRequest(); + return new QNetworkRequest(QUrl(*static_cast(url))); +} + +extern "C" VQT6_API void vqt6_qnetworkrequest_set_url(void* req, void* url) { + if (req == nullptr || url == nullptr) return; + static_cast(req)->setUrl(QUrl(*static_cast(url))); +} + +extern "C" VQT6_API void* vqt6_qnetworkrequest_url(void* req) { + if (req == nullptr) return nullptr; + return new QString(static_cast(req)->url().toString()); +} + +extern "C" VQT6_API void vqt6_qnetworkrequest_set_header(void* req, int header_type, void* value) { + if (req == nullptr || value == nullptr) return; + static_cast(req)->setHeader(static_cast(header_type), + *static_cast(value)); +} + +extern "C" VQT6_API void* vqt6_qnetworkrequest_header(void* req, int header_type) { + if (req == nullptr) return nullptr; + return new QVariant(static_cast(req)->header(static_cast(header_type))); +} + +extern "C" VQT6_API void vqt6_qnetworkrequest_set_raw_header(void* req, const char* header_name, const void* value, size_t value_size) { + if (req == nullptr || header_name == nullptr) return; + static_cast(req)->setRawHeader(QByteArray(header_name), + QByteArray(static_cast(value), static_cast(value_size))); +} + +extern "C" VQT6_API void* vqt6_qnetworkrequest_raw_header(void* req, const char* header_name, size_t* out_size) { + if (req == nullptr || header_name == nullptr) return nullptr; + QByteArray ba = static_cast(req)->rawHeader(QByteArray(header_name)); + if (out_size != nullptr) *out_size = static_cast(ba.size()); + return ba.data(); +} + +extern "C" VQT6_API void vqt6_qnetworkrequest_set_attribute(void* req, int attr_type, void* value) { + if (req == nullptr || value == nullptr) return; + static_cast(req)->setAttribute(static_cast(attr_type), + *static_cast(value)); +} + +extern "C" VQT6_API void* vqt6_qnetworkrequest_attribute(void* req, int attr_type) { + if (req == nullptr) return nullptr; + return new QVariant(static_cast(req)->attribute(static_cast(attr_type))); +} + +extern "C" VQT6_API void vqt6_qnetworkrequest_free(void* req) { + delete static_cast(req); +} + +// ============================================================ +// QNetworkAccessManager +// ============================================================ +extern "C" VQT6_API void* vqt6_qnetworkaccessmanager_create(void) { + return new QNetworkAccessManager(); +} + +extern "C" VQT6_API void* vqt6_qnetworkaccessmanager_create_with_parent(void* parent) { + if (parent == nullptr) return nullptr; + return new QNetworkAccessManager(static_cast(parent)); +} + +extern "C" VQT6_API void* vqt6_qnetworkaccessmanager_get(void* nam, void* req) { + if (nam == nullptr || req == nullptr) return nullptr; + return static_cast(nam)->get(*static_cast(req)); +} + +extern "C" VQT6_API void* vqt6_qnetworkaccessmanager_post(void* nam, void* req, const void* data, size_t size) { + if (nam == nullptr || req == nullptr) return nullptr; + QByteArray payload; + if (data != nullptr && size > 0) { + payload = QByteArray(static_cast(data), static_cast(size)); + } + return static_cast(nam)->post(*static_cast(req), payload); +} + +extern "C" VQT6_API void* vqt6_qnetworkaccessmanager_put(void* nam, void* req, const void* data, size_t size) { + if (nam == nullptr || req == nullptr) return nullptr; + QByteArray payload; + if (data != nullptr && size > 0) { + payload = QByteArray(static_cast(data), static_cast(size)); + } + return static_cast(nam)->put(*static_cast(req), payload); +} + +extern "C" VQT6_API void* vqt6_qnetworkaccessmanager_delete_resource(void* nam, void* req) { + if (nam == nullptr || req == nullptr) return nullptr; + return static_cast(nam)->deleteResource(*static_cast(req)); +} + +extern "C" VQT6_API void* vqt6_qnetworkaccessmanager_head(void* nam, void* req) { + if (nam == nullptr || req == nullptr) return nullptr; + return static_cast(nam)->head(*static_cast(req)); +} + +extern "C" VQT6_API void vqt6_qnetworkaccessmanager_set_cookie_store(void* nam, void* store) { + if (nam == nullptr || store == nullptr) return; + QNetworkCookieJar* jar = qobject_cast(static_cast(store)); + if (jar != nullptr) { + static_cast(nam)->setCookieJar(jar); + } +} + +// ============================================================ +// QNetworkReply +// ============================================================ +extern "C" VQT6_API void* vqt6_qnetworkreply_url(void* reply) { + if (reply == nullptr) return nullptr; + return new QString(static_cast(reply)->url().toString()); +} + +extern "C" VQT6_API void* vqt6_qnetworkreply_request(void* reply) { + if (reply == nullptr) return nullptr; + return new QNetworkRequest(static_cast(reply)->request()); +} + +extern "C" VQT6_API int vqt6_qnetworkreply_error(void* reply) { + if (reply == nullptr) return 0; + return static_cast(static_cast(reply)->error()); +} + +extern "C" VQT6_API void* vqt6_qnetworkreply_error_string(void* reply) { + if (reply == nullptr) return nullptr; + return new QString(static_cast(reply)->errorString()); +} + +extern "C" VQT6_API int vqt6_qnetworkreply_is_finished(void* reply) { + if (reply == nullptr) return 0; + return static_cast(reply)->isFinished() ? 1 : 0; +} + +extern "C" VQT6_API int vqt6_qnetworkreply_is_running(void* reply) { + if (reply == nullptr) return 0; + return static_cast(reply)->isRunning() ? 1 : 0; +} + +extern "C" VQT6_API void vqt6_qnetworkreply_abort(void* reply) { + if (reply == nullptr) return; + static_cast(reply)->abort(); +} + +extern "C" VQT6_API size_t vqt6_qnetworkreply_read(void* reply, void* buf, size_t max_size) { + if (reply == nullptr || buf == nullptr) return 0; + return static_cast(static_cast(reply)->read(static_cast(buf), static_cast(max_size))); +} + +extern "C" VQT6_API void* vqt6_qnetworkreply_read_all(void* reply, size_t* out_size) { + if (reply == nullptr) return nullptr; + QByteArray ba = static_cast(reply)->readAll(); + if (out_size != nullptr) *out_size = static_cast(ba.size()); + return ba.data(); +} + +extern "C" VQT6_API size_t vqt6_qnetworkreply_bytes_available(void* reply) { + if (reply == nullptr) return 0; + return static_cast(static_cast(reply)->bytesAvailable()); +} + +extern "C" VQT6_API void* vqt6_qnetworkreply_header(void* reply, int header_type) { + if (reply == nullptr) return nullptr; + return new QVariant(static_cast(reply)->header(static_cast(header_type))); +} + +extern "C" VQT6_API void* vqt6_qnetworkreply_raw_header(void* reply, const char* header_name, size_t* out_size) { + if (reply == nullptr || header_name == nullptr) return nullptr; + QByteArray ba = static_cast(reply)->rawHeader(QByteArray(header_name)); + if (out_size != nullptr) *out_size = static_cast(ba.size()); + return ba.data(); +} + +extern "C" VQT6_API void* vqt6_qnetworkreply_attribute(void* reply, int attribute_code) { + if (reply == nullptr) return nullptr; + return new QVariant(static_cast(reply)->attribute(static_cast(attribute_code))); +} + +extern "C" VQT6_API int vqt6_qnetworkreply_attribute_int(void* reply, int attribute_code, int default_value) { + if (reply == nullptr) return default_value; + return static_cast(reply)->attribute(static_cast(attribute_code)).toInt(default_value); +} + +extern "C" VQT6_API void vqt6_qnetworkreply_set_raw_header(void* reply, const char* header_name, const void* value, size_t value_size) { + if (reply == nullptr || header_name == nullptr) return; + static_cast(reply)->setRawHeader(QByteArray(header_name), + QByteArray(static_cast(value), static_cast(value_size))); +} diff --git a/includes/vqt6/_bridge_network.h b/includes/vqt6/_bridge_network.h new file mode 100644 index 0000000..2f99580 --- /dev/null +++ b/includes/vqt6/_bridge_network.h @@ -0,0 +1,137 @@ +// ============================================================ +// vqt6/_bridge_network.h — QtNetwork C 桥接函数声明 +// ============================================================ + +#ifndef VQT6_BRIDGE_NETWORK_H +#define VQT6_BRIDGE_NETWORK_H + +#include "_bridge.h" + +#ifdef __cplusplus +extern "C" { +#endif + +// ============================================================ +// QHostAddress +// ============================================================ +VQT6_API void* vqt6_qhostaddress_create(void); +VQT6_API void* vqt6_qhostaddress_create_with_ipv4(uint32_t ipv4); +VQT6_API void* vqt6_qhostaddress_create_with_string(void* address); +VQT6_API void* vqt6_qhostaddress_create_with_local_host(void); +VQT6_API void* vqt6_qhostaddress_create_with_local_ipv4(void); +VQT6_API void* vqt6_qhostaddress_create_with_broadcast(void); +VQT6_API void* vqt6_qhostaddress_create_with_any_ipv4(void); +VQT6_API void* vqt6_qhostaddress_to_string(void* addr); +VQT6_API uint32_t vqt6_qhostaddress_to_ipv4(void* addr); +VQT6_API int vqt6_qhostaddress_is_null(void* addr); +VQT6_API int vqt6_qhostaddress_is_loopback(void* addr); +VQT6_API int vqt6_qhostaddress_is_broadcast(void* addr); +VQT6_API int vqt6_qhostaddress_protocol(void* addr); +VQT6_API void vqt6_qhostaddress_free(void* addr); + +// ============================================================ +// QAbstractSocket +// ============================================================ +VQT6_API int vqt6_qabstractsocket_state(void* socket); +VQT6_API int vqt6_qabstractsocket_error(void* socket); +VQT6_API void* vqt6_qabstractsocket_error_string(void* socket); +VQT6_API void vqt6_qabstractsocket_connect_to_host(void* socket, void* host_name, uint16_t port); +VQT6_API void vqt6_qabstractsocket_connect_to_host_with_addr(void* socket, void* address, uint16_t port); +VQT6_API void vqt6_qabstractsocket_disconnect_from_host(void* socket); +VQT6_API int vqt6_qabstractsocket_wait_for_connected(void* socket, int timeout_ms); +VQT6_API int vqt6_qabstractsocket_wait_for_ready_read(void* socket, int timeout_ms); +VQT6_API int vqt6_qabstractsocket_wait_for_bytes_written(void* socket, int timeout_ms); +VQT6_API int vqt6_qabstractsocket_wait_for_disconnected(void* socket, int timeout_ms); +VQT6_API int vqt6_qabstractsocket_is_valid(void* socket); +VQT6_API int vqt6_qabstractsocket_is_open(void* socket); +VQT6_API int vqt6_qabstractsocket_flush(void* socket); +VQT6_API void vqt6_qabstractsocket_close(void* socket); +VQT6_API void vqt6_qabstractsocket_abort(void* socket); +VQT6_API size_t vqt6_qabstractsocket_read(void* socket, void* buf, size_t max_size); +VQT6_API void* vqt6_qabstractsocket_read_all(void* socket, size_t* out_size); +VQT6_API size_t vqt6_qabstractsocket_write(void* socket, const void* data, size_t size); +VQT6_API size_t vqt6_qabstractsocket_bytes_available(void* socket); +VQT6_API size_t vqt6_qabstractsocket_bytes_to_write(void* socket); +VQT6_API void* vqt6_qabstractsocket_peer_address(void* socket); +VQT6_API uint16_t vqt6_qabstractsocket_peer_port(void* socket); +VQT6_API void* vqt6_qabstractsocket_local_address(void* socket); +VQT6_API uint16_t vqt6_qabstractsocket_local_port(void* socket); + +// ============================================================ +// QTcpSocket +// ============================================================ +VQT6_API void* vqt6_qtcpsocket_create(void); +VQT6_API void* vqt6_qtcpsocket_create_with_parent(void* parent); +VQT6_API void vqt6_qtcpsocket_connect_to_host(void* socket, void* host_name, uint16_t port, int mode); +VQT6_API void vqt6_qtcpsocket_connect_to_host_with_addr(void* socket, void* address, uint16_t port, int mode); +VQT6_API int vqt6_qtcpsocket_set_socket_descriptor(void* socket, intptr_t socket_descriptor); +VQT6_API intptr_t vqt6_qtcpsocket_socket_descriptor(void* socket); +VQT6_API void vqt6_qtcpsocket_set_proxy(void* socket, int proxy_type); +VQT6_API void vqt6_qtcpsocket_abort(void* socket); + +// ============================================================ +// QUdpSocket +// ============================================================ +VQT6_API void* vqt6_qudpsocket_create(void); +VQT6_API void* vqt6_qudpsocket_create_with_parent(void* parent); +VQT6_API int vqt6_qudpsocket_bind(void* socket, uint16_t port); +VQT6_API int vqt6_qudpsocket_bind_with_addr(void* socket, void* address, uint16_t port); +VQT6_API void vqt6_qudpsocket_close(void* socket); +VQT6_API size_t vqt6_qudpsocket_write_datagram(void* socket, const void* data, size_t size, void* host, uint16_t port); +VQT6_API size_t vqt6_qudpsocket_read_datagram(void* socket, void* data, size_t max_size, void* host, uint16_t* port); +VQT6_API int vqt6_qudpsocket_has_pending_datagrams(void* socket); +VQT6_API size_t vqt6_qudpsocket_pending_datagram_size(void* socket); +VQT6_API int vqt6_qudpsocket_join_multicast_group(void* socket, void* group_address); +VQT6_API int vqt6_qudpsocket_leave_multicast_group(void* socket, void* group_address); + +// ============================================================ +// QNetworkRequest +// ============================================================ +VQT6_API void* vqt6_qnetworkrequest_create(void); +VQT6_API void* vqt6_qnetworkrequest_create_with_url(void* url); +VQT6_API void vqt6_qnetworkrequest_set_url(void* req, void* url); +VQT6_API void* vqt6_qnetworkrequest_url(void* req); +VQT6_API void vqt6_qnetworkrequest_set_header(void* req, int header_type, void* value); +VQT6_API void* vqt6_qnetworkrequest_header(void* req, int header_type); +VQT6_API void vqt6_qnetworkrequest_set_raw_header(void* req, const char* header_name, const void* value, size_t value_size); +VQT6_API void* vqt6_qnetworkrequest_raw_header(void* req, const char* header_name, size_t* out_size); +VQT6_API void vqt6_qnetworkrequest_set_attribute(void* req, int attr_type, void* value); +VQT6_API void* vqt6_qnetworkrequest_attribute(void* req, int attr_type); +VQT6_API void vqt6_qnetworkrequest_free(void* req); + +// ============================================================ +// QNetworkAccessManager +// ============================================================ +VQT6_API void* vqt6_qnetworkaccessmanager_create(void); +VQT6_API void* vqt6_qnetworkaccessmanager_create_with_parent(void* parent); +VQT6_API void* vqt6_qnetworkaccessmanager_get(void* nam, void* req); +VQT6_API void* vqt6_qnetworkaccessmanager_post(void* nam, void* req, const void* data, size_t size); +VQT6_API void* vqt6_qnetworkaccessmanager_put(void* nam, void* req, const void* data, size_t size); +VQT6_API void* vqt6_qnetworkaccessmanager_delete_resource(void* nam, void* req); +VQT6_API void* vqt6_qnetworkaccessmanager_head(void* nam, void* req); +VQT6_API void vqt6_qnetworkaccessmanager_set_cookie_store(void* nam, void* store); + +// ============================================================ +// QNetworkReply +// ============================================================ +VQT6_API void* vqt6_qnetworkreply_url(void* reply); +VQT6_API void* vqt6_qnetworkreply_request(void* reply); +VQT6_API int vqt6_qnetworkreply_error(void* reply); +VQT6_API void* vqt6_qnetworkreply_error_string(void* reply); +VQT6_API int vqt6_qnetworkreply_is_finished(void* reply); +VQT6_API int vqt6_qnetworkreply_is_running(void* reply); +VQT6_API void vqt6_qnetworkreply_abort(void* reply); +VQT6_API size_t vqt6_qnetworkreply_read(void* reply, void* buf, size_t max_size); +VQT6_API void* vqt6_qnetworkreply_read_all(void* reply, size_t* out_size); +VQT6_API size_t vqt6_qnetworkreply_bytes_available(void* reply); +VQT6_API void* vqt6_qnetworkreply_header(void* reply, int header_type); +VQT6_API void* vqt6_qnetworkreply_raw_header(void* reply, const char* header_name, size_t* out_size); +VQT6_API void* vqt6_qnetworkreply_attribute(void* reply, int attribute_code); +VQT6_API int vqt6_qnetworkreply_attribute_int(void* reply, int attribute_code, int default_value); +VQT6_API void vqt6_qnetworkreply_set_raw_header(void* reply, const char* header_name, const void* value, size_t value_size); + +#ifdef __cplusplus +} +#endif + +#endif // VQT6_BRIDGE_NETWORK_H diff --git a/includes/vqt6/_bridge_widgets.cpp b/includes/vqt6/_bridge_widgets.cpp new file mode 100644 index 0000000..2b963a5 --- /dev/null +++ b/includes/vqt6/_bridge_widgets.cpp @@ -0,0 +1,1745 @@ +// ============================================================ +// vqt6/_bridge_widgets.cpp — QtWidgets C 桥接层实现 +// ============================================================ + +#include "_bridge.h" +#include "_bridge_widgets.h" +#include "_bridge_gui.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// ============================================================ +// QApplication +// ============================================================ +extern "C" VQT6_API void* vqt6_qapplication_create(int argc, char** argv) { + return new QApplication(argc, argv); +} + +extern "C" VQT6_API void* vqt6_qapplication_instance(void) { + return QApplication::instance(); +} + +extern "C" VQT6_API int vqt6_qapplication_exec(void* app) { + if (app == nullptr) return -1; + return static_cast(app)->exec(); +} + +extern "C" VQT6_API void vqt6_qapplication_quit(void* app) { + if (app == nullptr) return; + static_cast(app)->quit(); +} + +extern "C" VQT6_API void vqt6_qapplication_exit(void* app, int exit_code) { + if (app == nullptr) return; + static_cast(app)->exit(exit_code); +} + +extern "C" VQT6_API void vqt6_qapplication_process_events(void* app) { + if (app == nullptr) return; + static_cast(app)->processEvents(); +} + +extern "C" VQT6_API int vqt6_qapplication_desktop_width(void* app) { + if (app == nullptr) return 0; + QScreen* screen = static_cast(app)->primaryScreen(); + return screen != nullptr ? screen->size().width() : 0; +} + +extern "C" VQT6_API int vqt6_qapplication_desktop_height(void* app) { + if (app == nullptr) return 0; + QScreen* screen = static_cast(app)->primaryScreen(); + return screen != nullptr ? screen->size().height() : 0; +} + +extern "C" VQT6_API void vqt6_qapplication_set_quit_on_last_window_closed(void* app, int quit) { + if (app == nullptr) return; + static_cast(app)->setQuitOnLastWindowClosed(quit != 0); +} + +extern "C" VQT6_API int vqt6_qapplication_quit_on_last_window_closed(void* app) { + if (app == nullptr) return 0; + return QApplication::quitOnLastWindowClosed() ? 1 : 0; +} + +// ============================================================ +// QWidget +// ============================================================ +extern "C" VQT6_API void* vqt6_qwidget_create(void) { + return new QWidget(); +} + +extern "C" VQT6_API void* vqt6_qwidget_create_with_parent(void* parent) { + if (parent == nullptr) return nullptr; + return new QWidget(static_cast(parent)); +} + +extern "C" VQT6_API void vqt6_qwidget_show(void* widget) { + if (widget == nullptr) return; + static_cast(widget)->show(); +} + +extern "C" VQT6_API void vqt6_qwidget_hide(void* widget) { + if (widget == nullptr) return; + static_cast(widget)->hide(); +} + +extern "C" VQT6_API int vqt6_qwidget_close(void* widget) { + if (widget == nullptr) return 0; + return static_cast(widget)->close() ? 1 : 0; +} + +extern "C" VQT6_API int vqt6_qwidget_is_visible(void* widget) { + if (widget == nullptr) return 0; + return static_cast(widget)->isVisible() ? 1 : 0; +} + +extern "C" VQT6_API void vqt6_qwidget_set_visible(void* widget, int visible) { + if (widget == nullptr) return; + static_cast(widget)->setVisible(visible != 0); +} + +extern "C" VQT6_API void vqt6_qwidget_set_geometry(void* widget, int x, int y, int w, int h) { + if (widget == nullptr) return; + static_cast(widget)->setGeometry(x, y, w, h); +} + +extern "C" VQT6_API void vqt6_qwidget_geometry(void* widget, int* x, int* y, int* w, int* h) { + if (widget == nullptr) return; + QRect r = static_cast(widget)->geometry(); + if (x != nullptr) *x = r.x(); + if (y != nullptr) *y = r.y(); + if (w != nullptr) *w = r.width(); + if (h != nullptr) *h = r.height(); +} + +extern "C" VQT6_API void vqt6_qwidget_resize(void* widget, int w, int h) { + if (widget == nullptr) return; + static_cast(widget)->resize(w, h); +} + +extern "C" VQT6_API void vqt6_qwidget_size(void* widget, int* w, int* h) { + if (widget == nullptr) return; + QSize s = static_cast(widget)->size(); + if (w != nullptr) *w = s.width(); + if (h != nullptr) *h = s.height(); +} + +extern "C" VQT6_API void vqt6_qwidget_move(void* widget, int x, int y) { + if (widget == nullptr) return; + static_cast(widget)->move(x, y); +} + +extern "C" VQT6_API void vqt6_qwidget_pos(void* widget, int* x, int* y) { + if (widget == nullptr) return; + QPoint p = static_cast(widget)->pos(); + if (x != nullptr) *x = p.x(); + if (y != nullptr) *y = p.y(); +} + +extern "C" VQT6_API int vqt6_qwidget_width(void* widget) { + if (widget == nullptr) return 0; + return static_cast(widget)->width(); +} + +extern "C" VQT6_API int vqt6_qwidget_height(void* widget) { + if (widget == nullptr) return 0; + return static_cast(widget)->height(); +} + +extern "C" VQT6_API int vqt6_qwidget_x(void* widget) { + if (widget == nullptr) return 0; + return static_cast(widget)->x(); +} + +extern "C" VQT6_API int vqt6_qwidget_y(void* widget) { + if (widget == nullptr) return 0; + return static_cast(widget)->y(); +} + +extern "C" VQT6_API void vqt6_qwidget_set_window_title(void* widget, void* title) { + if (widget == nullptr || title == nullptr) return; + static_cast(widget)->setWindowTitle(*static_cast(title)); +} + +extern "C" VQT6_API void* vqt6_qwidget_window_title(void* widget) { + if (widget == nullptr) return nullptr; + return new QString(static_cast(widget)->windowTitle()); +} + +extern "C" VQT6_API void vqt6_qwidget_set_text(void* widget, void* text) { + if (widget == nullptr || text == nullptr) return; + static_cast(widget)->setWindowTitle(*static_cast(text)); +} + +extern "C" VQT6_API void* vqt6_qwidget_text(void* widget) { + if (widget == nullptr) return nullptr; + return new QString(static_cast(widget)->windowTitle()); +} + +extern "C" VQT6_API void vqt6_qwidget_set_enabled(void* widget, int enabled) { + if (widget == nullptr) return; + static_cast(widget)->setEnabled(enabled != 0); +} + +extern "C" VQT6_API int vqt6_qwidget_is_enabled(void* widget) { + if (widget == nullptr) return 0; + return static_cast(widget)->isEnabled() ? 1 : 0; +} + +extern "C" VQT6_API void vqt6_qwidget_set_parent(void* widget, void* parent) { + if (widget == nullptr) return; + static_cast(widget)->setParent(static_cast(parent)); +} + +extern "C" VQT6_API void* vqt6_qwidget_parent_widget(void* widget) { + if (widget == nullptr) return nullptr; + return static_cast(widget)->parentWidget(); +} + +extern "C" VQT6_API void vqt6_qwidget_set_focus(void* widget) { + if (widget == nullptr) return; + static_cast(widget)->setFocus(); +} + +extern "C" VQT6_API void vqt6_qwidget_clear_focus(void* widget) { + if (widget == nullptr) return; + static_cast(widget)->clearFocus(); +} + +extern "C" VQT6_API int vqt6_qwidget_has_focus(void* widget) { + if (widget == nullptr) return 0; + return static_cast(widget)->hasFocus() ? 1 : 0; +} + +extern "C" VQT6_API void vqt6_qwidget_set_focus_policy(void* widget, int policy) { + if (widget == nullptr) return; + static_cast(widget)->setFocusPolicy(static_cast(policy)); +} + +extern "C" VQT6_API void vqt6_qwidget_update(void* widget) { + if (widget == nullptr) return; + static_cast(widget)->update(); +} + +extern "C" VQT6_API void vqt6_qwidget_repaint(void* widget) { + if (widget == nullptr) return; + static_cast(widget)->repaint(); +} + +extern "C" VQT6_API void vqt6_qwidget_set_update_enabled(void* widget, int enabled) { + if (widget == nullptr) return; + static_cast(widget)->setUpdatesEnabled(enabled != 0); +} + +extern "C" VQT6_API void vqt6_qwidget_set_window_flags(void* widget, int flags) { + if (widget == nullptr) return; + static_cast(widget)->setWindowFlags(static_cast(flags)); +} + +extern "C" VQT6_API int vqt6_qwidget_window_flags(void* widget) { + if (widget == nullptr) return 0; + return static_cast(static_cast(widget)->windowFlags()); +} + +extern "C" VQT6_API void vqt6_qwidget_set_cursor(void* widget, void* cursor) { + if (widget == nullptr || cursor == nullptr) return; + static_cast(widget)->setCursor(*static_cast(cursor)); +} + +extern "C" VQT6_API void* vqt6_qwidget_cursor(void* widget) { + if (widget == nullptr) return nullptr; + return new QCursor(static_cast(widget)->cursor()); +} + +extern "C" VQT6_API void vqt6_qwidget_unset_cursor(void* widget) { + if (widget == nullptr) return; + static_cast(widget)->unsetCursor(); +} + +extern "C" VQT6_API void vqt6_qwidget_set_tool_tip(void* widget, void* tip) { + if (widget == nullptr || tip == nullptr) return; + static_cast(widget)->setToolTip(*static_cast(tip)); +} + +extern "C" VQT6_API void* vqt6_qwidget_tool_tip(void* widget) { + if (widget == nullptr) return nullptr; + return new QString(static_cast(widget)->toolTip()); +} + +extern "C" VQT6_API void vqt6_qwidget_set_status_tip(void* widget, void* tip) { + if (widget == nullptr || tip == nullptr) return; + static_cast(widget)->setStatusTip(*static_cast(tip)); +} + +extern "C" VQT6_API void* vqt6_qwidget_status_tip(void* widget) { + if (widget == nullptr) return nullptr; + return new QString(static_cast(widget)->statusTip()); +} + +extern "C" VQT6_API void vqt6_qwidget_set_minimum_size(void* widget, int w, int h) { + if (widget == nullptr) return; + static_cast(widget)->setMinimumSize(w, h); +} + +extern "C" VQT6_API void vqt6_qwidget_set_maximum_size(void* widget, int w, int h) { + if (widget == nullptr) return; + static_cast(widget)->setMaximumSize(w, h); +} + +extern "C" VQT6_API void vqt6_qwidget_set_fixed_size(void* widget, int w, int h) { + if (widget == nullptr) return; + static_cast(widget)->setFixedSize(w, h); +} + +extern "C" VQT6_API void vqt6_qwidget_minimum_size(void* widget, int* w, int* h) { + if (widget == nullptr) return; + QSize s = static_cast(widget)->minimumSize(); + if (w != nullptr) *w = s.width(); + if (h != nullptr) *h = s.height(); +} + +extern "C" VQT6_API void vqt6_qwidget_maximum_size(void* widget, int* w, int* h) { + if (widget == nullptr) return; + QSize s = static_cast(widget)->maximumSize(); + if (w != nullptr) *w = s.width(); + if (h != nullptr) *h = s.height(); +} + +// ============================================================ +// QDialog +// ============================================================ +extern "C" VQT6_API void* vqt6_qdialog_create(void) { + return new QDialog(); +} + +extern "C" VQT6_API void* vqt6_qdialog_create_with_parent(void* parent) { + if (parent == nullptr) return nullptr; + return new QDialog(static_cast(parent)); +} + +extern "C" VQT6_API int vqt6_qdialog_exec(void* dialog) { + if (dialog == nullptr) return -1; + return static_cast(dialog)->exec(); +} + +extern "C" VQT6_API void vqt6_qdialog_done(void* dialog, int result) { + if (dialog == nullptr) return; + static_cast(dialog)->done(result); +} + +extern "C" VQT6_API void vqt6_qdialog_accept(void* dialog) { + if (dialog == nullptr) return; + static_cast(dialog)->accept(); +} + +extern "C" VQT6_API void vqt6_qdialog_reject(void* dialog) { + if (dialog == nullptr) return; + static_cast(dialog)->reject(); +} + +extern "C" VQT6_API void vqt6_qdialog_set_result(void* dialog, int result) { + if (dialog == nullptr) return; + static_cast(dialog)->setResult(result); +} + +extern "C" VQT6_API int vqt6_qdialog_result(void* dialog) { + if (dialog == nullptr) return 0; + return static_cast(dialog)->result(); +} + +extern "C" VQT6_API void vqt6_qdialog_set_modal(void* dialog, int modal) { + if (dialog == nullptr) return; + static_cast(dialog)->setModal(modal != 0); +} + +extern "C" VQT6_API int vqt6_qdialog_is_modal(void* dialog) { + if (dialog == nullptr) return 0; + return static_cast(dialog)->isModal() ? 1 : 0; +} + +// ============================================================ +// QMainWindow +// ============================================================ +extern "C" VQT6_API void* vqt6_qmainwindow_create(void) { + return new QMainWindow(); +} + +extern "C" VQT6_API void* vqt6_qmainwindow_create_with_parent(void* parent) { + if (parent == nullptr) return nullptr; + return new QMainWindow(static_cast(parent)); +} + +extern "C" VQT6_API void vqt6_qmainwindow_set_central_widget(void* mw, void* widget) { + if (mw == nullptr) return; + static_cast(mw)->setCentralWidget(static_cast(widget)); +} + +extern "C" VQT6_API void* vqt6_qmainwindow_central_widget(void* mw) { + if (mw == nullptr) return nullptr; + return static_cast(mw)->centralWidget(); +} + +extern "C" VQT6_API void* vqt6_qmainwindow_menu_bar(void* mw) { + if (mw == nullptr) return nullptr; + return static_cast(mw)->menuBar(); +} + +extern "C" VQT6_API void vqt6_qmainwindow_set_menu_bar(void* mw, void* menubar) { + if (mw == nullptr) return; + static_cast(mw)->setMenuBar(static_cast(menubar)); +} + +extern "C" VQT6_API void* vqt6_qmainwindow_status_bar(void* mw) { + if (mw == nullptr) return nullptr; + return static_cast(mw)->statusBar(); +} + +extern "C" VQT6_API void vqt6_qmainwindow_set_status_bar(void* mw, void* statusbar) { + if (mw == nullptr) return; + static_cast(mw)->setStatusBar(static_cast(statusbar)); +} + +extern "C" VQT6_API void vqt6_qmainwindow_add_tool_bar(void* mw, void* toolbar) { + if (mw == nullptr) return; + static_cast(mw)->addToolBar(static_cast(toolbar)); +} + +extern "C" VQT6_API void vqt6_qmainwindow_add_tool_bar_break(void* mw) { + if (mw == nullptr) return; + static_cast(mw)->addToolBarBreak(); +} + +// ============================================================ +// QLabel +// ============================================================ +extern "C" VQT6_API void* vqt6_qlabel_create(void) { + return new QLabel(); +} + +extern "C" VQT6_API void* vqt6_qlabel_create_with_text(void* text) { + if (text == nullptr) return nullptr; + return new QLabel(*static_cast(text)); +} + +extern "C" VQT6_API void* vqt6_qlabel_create_with_text_parent(void* text, void* parent) { + if (text == nullptr || parent == nullptr) return nullptr; + return new QLabel(*static_cast(text), static_cast(parent)); +} + +extern "C" VQT6_API void vqt6_qlabel_set_text(void* label, void* text) { + if (label == nullptr || text == nullptr) return; + static_cast(label)->setText(*static_cast(text)); +} + +extern "C" VQT6_API void* vqt6_qlabel_text(void* label) { + if (label == nullptr) return nullptr; + return new QString(static_cast(label)->text()); +} + +extern "C" VQT6_API void vqt6_qlabel_set_alignment(void* label, int alignment) { + if (label == nullptr) return; + static_cast(label)->setAlignment(static_cast(alignment)); +} + +extern "C" VQT6_API int vqt6_qlabel_alignment(void* label) { + if (label == nullptr) return 0; + return static_cast(static_cast(label)->alignment()); +} + +extern "C" VQT6_API void vqt6_qlabel_set_pixmap(void* label, void* pixmap) { + if (label == nullptr || pixmap == nullptr) return; + static_cast(label)->setPixmap(*static_cast(pixmap)); +} + +extern "C" VQT6_API void* vqt6_qlabel_pixmap(void* label) { + if (label == nullptr) return nullptr; + return new QPixmap(static_cast(label)->pixmap()); +} + +extern "C" VQT6_API void vqt6_qlabel_set_indent(void* label, int indent) { + if (label == nullptr) return; + static_cast(label)->setIndent(indent); +} + +extern "C" VQT6_API void vqt6_qlabel_set_margin(void* label, int margin) { + if (label == nullptr) return; + static_cast(label)->setMargin(margin); +} + +extern "C" VQT6_API void vqt6_qlabel_set_word_wrap(void* label, int wrap) { + if (label == nullptr) return; + static_cast(label)->setWordWrap(wrap != 0); +} + +extern "C" VQT6_API int vqt6_qlabel_word_wrap(void* label) { + if (label == nullptr) return 0; + return static_cast(label)->wordWrap() ? 1 : 0; +} + +// ============================================================ +// QPushButton +// ============================================================ +extern "C" VQT6_API void* vqt6_qpushbutton_create(void) { + return new QPushButton(); +} + +extern "C" VQT6_API void* vqt6_qpushbutton_create_with_text(void* text) { + if (text == nullptr) return nullptr; + return new QPushButton(*static_cast(text)); +} + +extern "C" VQT6_API void* vqt6_qpushbutton_create_with_text_parent(void* text, void* parent) { + if (text == nullptr || parent == nullptr) return nullptr; + return new QPushButton(*static_cast(text), static_cast(parent)); +} + +extern "C" VQT6_API void vqt6_qpushbutton_set_text(void* btn, void* text) { + if (btn == nullptr || text == nullptr) return; + static_cast(btn)->setText(*static_cast(text)); +} + +extern "C" VQT6_API void* vqt6_qpushbutton_text(void* btn) { + if (btn == nullptr) return nullptr; + return new QString(static_cast(btn)->text()); +} + +extern "C" VQT6_API void vqt6_qpushbutton_set_icon(void* btn, void* icon) { + if (btn == nullptr || icon == nullptr) return; + static_cast(btn)->setIcon(*static_cast(icon)); +} + +extern "C" VQT6_API void* vqt6_qpushbutton_icon(void* btn) { + if (btn == nullptr) return nullptr; + return new QIcon(static_cast(btn)->icon()); +} + +extern "C" VQT6_API void vqt6_qpushbutton_set_default(void* btn, int is_default) { + if (btn == nullptr) return; + static_cast(btn)->setDefault(is_default != 0); +} + +extern "C" VQT6_API int vqt6_qpushbutton_is_default(void* btn) { + if (btn == nullptr) return 0; + return static_cast(btn)->isDefault() ? 1 : 0; +} + +extern "C" VQT6_API void vqt6_qpushbutton_set_flat(void* btn, int flat) { + if (btn == nullptr) return; + static_cast(btn)->setFlat(flat != 0); +} + +extern "C" VQT6_API int vqt6_qpushbutton_is_flat(void* btn) { + if (btn == nullptr) return 0; + return static_cast(btn)->isFlat() ? 1 : 0; +} + +extern "C" VQT6_API void vqt6_qpushbutton_set_checkable(void* btn, int checkable) { + if (btn == nullptr) return; + static_cast(btn)->setCheckable(checkable != 0); +} + +extern "C" VQT6_API int vqt6_qpushbutton_is_checkable(void* btn) { + if (btn == nullptr) return 0; + return static_cast(btn)->isCheckable() ? 1 : 0; +} + +extern "C" VQT6_API void vqt6_qpushbutton_set_checked(void* btn, int checked) { + if (btn == nullptr) return; + static_cast(btn)->setChecked(checked != 0); +} + +extern "C" VQT6_API int vqt6_qpushbutton_is_checked(void* btn) { + if (btn == nullptr) return 0; + return static_cast(btn)->isChecked() ? 1 : 0; +} + +extern "C" VQT6_API void vqt6_qpushbutton_click(void* btn) { + if (btn == nullptr) return; + static_cast(btn)->click(); +} + +// ============================================================ +// QLineEdit +// ============================================================ +extern "C" VQT6_API void* vqt6_qlineedit_create(void) { + return new QLineEdit(); +} + +extern "C" VQT6_API void* vqt6_qlineedit_create_with_text(void* text) { + if (text == nullptr) return nullptr; + return new QLineEdit(*static_cast(text)); +} + +extern "C" VQT6_API void* vqt6_qlineedit_create_with_text_parent(void* text, void* parent) { + if (text == nullptr || parent == nullptr) return nullptr; + return new QLineEdit(*static_cast(text), static_cast(parent)); +} + +extern "C" VQT6_API void* vqt6_qlineedit_text(void* le) { + if (le == nullptr) return nullptr; + return new QString(static_cast(le)->text()); +} + +extern "C" VQT6_API void vqt6_qlineedit_set_text(void* le, void* text) { + if (le == nullptr || text == nullptr) return; + static_cast(le)->setText(*static_cast(text)); +} + +extern "C" VQT6_API void* vqt6_qlineedit_placeholder_text(void* le) { + if (le == nullptr) return nullptr; + return new QString(static_cast(le)->placeholderText()); +} + +extern "C" VQT6_API void vqt6_qlineedit_set_placeholder_text(void* le, void* text) { + if (le == nullptr || text == nullptr) return; + static_cast(le)->setPlaceholderText(*static_cast(text)); +} + +extern "C" VQT6_API void vqt6_qlineedit_set_max_length(void* le, int max) { + if (le == nullptr) return; + static_cast(le)->setMaxLength(max); +} + +extern "C" VQT6_API int vqt6_qlineedit_max_length(void* le) { + if (le == nullptr) return 0; + return static_cast(le)->maxLength(); +} + +extern "C" VQT6_API void vqt6_qlineedit_set_read_only(void* le, int ro) { + if (le == nullptr) return; + static_cast(le)->setReadOnly(ro != 0); +} + +extern "C" VQT6_API int vqt6_qlineedit_is_read_only(void* le) { + if (le == nullptr) return 0; + return static_cast(le)->isReadOnly() ? 1 : 0; +} + +extern "C" VQT6_API void vqt6_qlineedit_set_echo_mode(void* le, int mode) { + if (le == nullptr) return; + static_cast(le)->setEchoMode(static_cast(mode)); +} + +extern "C" VQT6_API int vqt6_qlineedit_echo_mode(void* le) { + if (le == nullptr) return 0; + return static_cast(static_cast(le)->echoMode()); +} + +extern "C" VQT6_API void vqt6_qlineedit_select_all(void* le) { + if (le == nullptr) return; + static_cast(le)->selectAll(); +} + +extern "C" VQT6_API void vqt6_qlineedit_clear(void* le) { + if (le == nullptr) return; + static_cast(le)->clear(); +} + +// ============================================================ +// QTextEdit / QPlainTextEdit +// ============================================================ +extern "C" VQT6_API void* vqt6_qtextedit_create(void) { + return new QTextEdit(); +} + +extern "C" VQT6_API void* vqt6_qtextedit_create_with_parent(void* parent) { + if (parent == nullptr) return nullptr; + return new QTextEdit(static_cast(parent)); +} + +extern "C" VQT6_API void* vqt6_qtextedit_to_plain_text(void* te) { + if (te == nullptr) return nullptr; + return new QString(static_cast(te)->toPlainText()); +} + +extern "C" VQT6_API void vqt6_qtextedit_set_plain_text(void* te, void* text) { + if (te == nullptr || text == nullptr) return; + static_cast(te)->setPlainText(*static_cast(text)); +} + +extern "C" VQT6_API void vqt6_qtextedit_set_html(void* te, void* html) { + if (te == nullptr || html == nullptr) return; + static_cast(te)->setHtml(*static_cast(html)); +} + +extern "C" VQT6_API void* vqt6_qtextedit_to_html(void* te) { + if (te == nullptr) return nullptr; + return new QString(static_cast(te)->toHtml()); +} + +extern "C" VQT6_API void vqt6_qtextedit_append(void* te, void* text) { + if (te == nullptr || text == nullptr) return; + static_cast(te)->append(*static_cast(text)); +} + +extern "C" VQT6_API void vqt6_qtextedit_clear(void* te) { + if (te == nullptr) return; + static_cast(te)->clear(); +} + +extern "C" VQT6_API void vqt6_qtextedit_set_read_only(void* te, int ro) { + if (te == nullptr) return; + static_cast(te)->setReadOnly(ro != 0); +} + +extern "C" VQT6_API int vqt6_qtextedit_is_read_only(void* te) { + if (te == nullptr) return 0; + return static_cast(te)->isReadOnly() ? 1 : 0; +} + +extern "C" VQT6_API void* vqt6_qplaintextedit_create(void) { + return new QPlainTextEdit(); +} + +extern "C" VQT6_API void* vqt6_qplaintextedit_create_with_parent(void* parent) { + if (parent == nullptr) return nullptr; + return new QPlainTextEdit(static_cast(parent)); +} + +extern "C" VQT6_API void* vqt6_qplaintextedit_to_plain_text(void* pte) { + if (pte == nullptr) return nullptr; + return new QString(static_cast(pte)->toPlainText()); +} + +extern "C" VQT6_API void vqt6_qplaintextedit_set_plain_text(void* pte, void* text) { + if (pte == nullptr || text == nullptr) return; + static_cast(pte)->setPlainText(*static_cast(text)); +} + +extern "C" VQT6_API void vqt6_qplaintextedit_append(void* pte, void* text) { + if (pte == nullptr || text == nullptr) return; + static_cast(pte)->appendPlainText(*static_cast(text)); +} + +extern "C" VQT6_API void vqt6_qplaintextedit_clear(void* pte) { + if (pte == nullptr) return; + static_cast(pte)->clear(); +} + +extern "C" VQT6_API void vqt6_qplaintextedit_set_read_only(void* pte, int ro) { + if (pte == nullptr) return; + static_cast(pte)->setReadOnly(ro != 0); +} + +extern "C" VQT6_API int vqt6_qplaintextedit_line_count(void* pte) { + if (pte == nullptr) return 0; + return static_cast(pte)->blockCount(); +} + +// ============================================================ +// QCheckBox / QRadioButton +// ============================================================ +extern "C" VQT6_API void* vqt6_qcheckbox_create(void) { + return new QCheckBox(); +} + +extern "C" VQT6_API void* vqt6_qcheckbox_create_with_text(void* text) { + if (text == nullptr) return nullptr; + return new QCheckBox(*static_cast(text)); +} + +extern "C" VQT6_API void* vqt6_qcheckbox_create_with_text_parent(void* text, void* parent) { + if (text == nullptr || parent == nullptr) return nullptr; + return new QCheckBox(*static_cast(text), static_cast(parent)); +} + +extern "C" VQT6_API void vqt6_qcheckbox_set_checked(void* cb, int checked) { + if (cb == nullptr) return; + static_cast(cb)->setChecked(checked != 0); +} + +extern "C" VQT6_API int vqt6_qcheckbox_is_checked(void* cb) { + if (cb == nullptr) return 0; + return static_cast(cb)->isChecked() ? 1 : 0; +} + +extern "C" VQT6_API void vqt6_qcheckbox_set_text(void* cb, void* text) { + if (cb == nullptr || text == nullptr) return; + static_cast(cb)->setText(*static_cast(text)); +} + +extern "C" VQT6_API void* vqt6_qcheckbox_text(void* cb) { + if (cb == nullptr) return nullptr; + return new QString(static_cast(cb)->text()); +} + +extern "C" VQT6_API void vqt6_qcheckbox_set_tristate(void* cb, int tristate) { + if (cb == nullptr) return; + static_cast(cb)->setTristate(tristate != 0); +} + +extern "C" VQT6_API int vqt6_qcheckbox_is_tristate(void* cb) { + if (cb == nullptr) return 0; + return static_cast(cb)->isTristate() ? 1 : 0; +} + +extern "C" VQT6_API void* vqt6_qradiobutton_create(void) { + return new QRadioButton(); +} + +extern "C" VQT6_API void* vqt6_qradiobutton_create_with_text(void* text) { + if (text == nullptr) return nullptr; + return new QRadioButton(*static_cast(text)); +} + +extern "C" VQT6_API void* vqt6_qradiobutton_create_with_text_parent(void* text, void* parent) { + if (text == nullptr || parent == nullptr) return nullptr; + return new QRadioButton(*static_cast(text), static_cast(parent)); +} + +extern "C" VQT6_API void vqt6_qradiobutton_set_checked(void* rb, int checked) { + if (rb == nullptr) return; + static_cast(rb)->setChecked(checked != 0); +} + +extern "C" VQT6_API int vqt6_qradiobutton_is_checked(void* rb) { + if (rb == nullptr) return 0; + return static_cast(rb)->isChecked() ? 1 : 0; +} + +extern "C" VQT6_API void vqt6_qradiobutton_set_text(void* rb, void* text) { + if (rb == nullptr || text == nullptr) return; + static_cast(rb)->setText(*static_cast(text)); +} + +extern "C" VQT6_API void* vqt6_qradiobutton_text(void* rb) { + if (rb == nullptr) return nullptr; + return new QString(static_cast(rb)->text()); +} + +// ============================================================ +// QComboBox +// ============================================================ +extern "C" VQT6_API void* vqt6_qcombobox_create(void) { + return new QComboBox(); +} + +extern "C" VQT6_API void* vqt6_qcombobox_create_with_parent(void* parent) { + if (parent == nullptr) return nullptr; + return new QComboBox(static_cast(parent)); +} + +extern "C" VQT6_API void vqt6_qcombobox_add_item(void* cb, void* text) { + if (cb == nullptr || text == nullptr) return; + static_cast(cb)->addItem(*static_cast(text)); +} + +extern "C" VQT6_API void vqt6_qcombobox_add_items(void* cb, void* items) { + if (cb == nullptr || items == nullptr) return; + static_cast(cb)->addItems(*static_cast(items)); +} + +extern "C" VQT6_API void vqt6_qcombobox_insert_item(void* cb, int index, void* text) { + if (cb == nullptr || text == nullptr) return; + static_cast(cb)->insertItem(index, *static_cast(text)); +} + +extern "C" VQT6_API void vqt6_qcombobox_remove_item(void* cb, int index) { + if (cb == nullptr) return; + static_cast(cb)->removeItem(index); +} + +extern "C" VQT6_API void vqt6_qcombobox_clear(void* cb) { + if (cb == nullptr) return; + static_cast(cb)->clear(); +} + +extern "C" VQT6_API int vqt6_qcombobox_count(void* cb) { + if (cb == nullptr) return 0; + return static_cast(cb)->count(); +} + +extern "C" VQT6_API int vqt6_qcombobox_current_index(void* cb) { + if (cb == nullptr) return -1; + return static_cast(cb)->currentIndex(); +} + +extern "C" VQT6_API void vqt6_qcombobox_set_current_index(void* cb, int index) { + if (cb == nullptr) return; + static_cast(cb)->setCurrentIndex(index); +} + +extern "C" VQT6_API void* vqt6_qcombobox_current_text(void* cb) { + if (cb == nullptr) return nullptr; + return new QString(static_cast(cb)->currentText()); +} + +extern "C" VQT6_API void* vqt6_qcombobox_item_text(void* cb, int index) { + if (cb == nullptr) return nullptr; + return new QString(static_cast(cb)->itemText(index)); +} + +extern "C" VQT6_API void vqt6_qcombobox_set_editable(void* cb, int editable) { + if (cb == nullptr) return; + static_cast(cb)->setEditable(editable != 0); +} + +extern "C" VQT6_API int vqt6_qcombobox_is_editable(void* cb) { + if (cb == nullptr) return 0; + return static_cast(cb)->isEditable() ? 1 : 0; +} + +// ============================================================ +// QListWidget +// ============================================================ +extern "C" VQT6_API void* vqt6_qlistwidget_create(void) { + return new QListWidget(); +} + +extern "C" VQT6_API void* vqt6_qlistwidget_create_with_parent(void* parent) { + if (parent == nullptr) return nullptr; + return new QListWidget(static_cast(parent)); +} + +extern "C" VQT6_API void vqt6_qlistwidget_add_item(void* lw, void* text) { + if (lw == nullptr || text == nullptr) return; + static_cast(lw)->addItem(*static_cast(text)); +} + +extern "C" VQT6_API void vqt6_qlistwidget_add_items(void* lw, void* items) { + if (lw == nullptr || items == nullptr) return; + static_cast(lw)->addItems(*static_cast(items)); +} + +extern "C" VQT6_API void vqt6_qlistwidget_insert_item(void* lw, int row, void* text) { + if (lw == nullptr || text == nullptr) return; + static_cast(lw)->insertItem(row, *static_cast(text)); +} + +extern "C" VQT6_API void vqt6_qlistwidget_remove_item_widget(void* lw, int row) { + if (lw == nullptr) return; + static_cast(lw)->takeItem(row); +} + +extern "C" VQT6_API void* vqt6_qlistwidget_take_item(void* lw, int row) { + if (lw == nullptr) return nullptr; + return static_cast(lw)->takeItem(row); +} + +extern "C" VQT6_API void vqt6_qlistwidget_clear(void* lw) { + if (lw == nullptr) return; + static_cast(lw)->clear(); +} + +extern "C" VQT6_API int vqt6_qlistwidget_count(void* lw) { + if (lw == nullptr) return 0; + return static_cast(lw)->count(); +} + +extern "C" VQT6_API int vqt6_qlistwidget_current_row(void* lw) { + if (lw == nullptr) return -1; + return static_cast(lw)->currentRow(); +} + +extern "C" VQT6_API void vqt6_qlistwidget_set_current_row(void* lw, int row) { + if (lw == nullptr) return; + static_cast(lw)->setCurrentRow(row); +} + +extern "C" VQT6_API void* vqt6_qlistwidget_current_item_text(void* lw) { + if (lw == nullptr) return nullptr; + QListWidgetItem* it = static_cast(lw)->currentItem(); + if (it == nullptr) return nullptr; + return new QString(it->text()); +} + +extern "C" VQT6_API void* vqt6_qlistwidget_item_text(void* lw, int row) { + if (lw == nullptr) return nullptr; + QListWidgetItem* it = static_cast(lw)->item(row); + if (it == nullptr) return nullptr; + return new QString(it->text()); +} + +extern "C" VQT6_API void vqt6_qlistwidget_set_item_text(void* lw, int row, void* text) { + if (lw == nullptr || text == nullptr) return; + QListWidgetItem* it = static_cast(lw)->item(row); + if (it != nullptr) it->setText(*static_cast(text)); +} + +// ============================================================ +// QProgressBar +// ============================================================ +extern "C" VQT6_API void* vqt6_qprogressbar_create(void) { + return new QProgressBar(); +} + +extern "C" VQT6_API void* vqt6_qprogressbar_create_with_parent(void* parent) { + if (parent == nullptr) return nullptr; + return new QProgressBar(static_cast(parent)); +} + +extern "C" VQT6_API void vqt6_qprogressbar_set_value(void* pb, int value) { + if (pb == nullptr) return; + static_cast(pb)->setValue(value); +} + +extern "C" VQT6_API int vqt6_qprogressbar_value(void* pb) { + if (pb == nullptr) return 0; + return static_cast(pb)->value(); +} + +extern "C" VQT6_API void vqt6_qprogressbar_set_minimum(void* pb, int min) { + if (pb == nullptr) return; + static_cast(pb)->setMinimum(min); +} + +extern "C" VQT6_API void vqt6_qprogressbar_set_maximum(void* pb, int max) { + if (pb == nullptr) return; + static_cast(pb)->setMaximum(max); +} + +extern "C" VQT6_API void vqt6_qprogressbar_set_range(void* pb, int min, int max) { + if (pb == nullptr) return; + static_cast(pb)->setRange(min, max); +} + +extern "C" VQT6_API int vqt6_qprogressbar_minimum(void* pb) { + if (pb == nullptr) return 0; + return static_cast(pb)->minimum(); +} + +extern "C" VQT6_API int vqt6_qprogressbar_maximum(void* pb) { + if (pb == nullptr) return 0; + return static_cast(pb)->maximum(); +} + +extern "C" VQT6_API void vqt6_qprogressbar_set_text_visible(void* pb, int visible) { + if (pb == nullptr) return; + static_cast(pb)->setTextVisible(visible != 0); +} + +extern "C" VQT6_API void vqt6_qprogressbar_set_format(void* pb, void* format) { + if (pb == nullptr || format == nullptr) return; + static_cast(pb)->setFormat(*static_cast(format)); +} + +extern "C" VQT6_API void vqt6_qprogressbar_reset(void* pb) { + if (pb == nullptr) return; + static_cast(pb)->reset(); +} + +// ============================================================ +// QSlider +// ============================================================ +extern "C" VQT6_API void* vqt6_qslider_create(void) { + return new QSlider(); +} + +extern "C" VQT6_API void* vqt6_qslider_create_with_orientation(int orientation) { + return new QSlider(static_cast(orientation)); +} + +extern "C" VQT6_API void* vqt6_qslider_create_with_orientation_parent(int orientation, void* parent) { + if (parent == nullptr) return nullptr; + return new QSlider(static_cast(orientation), static_cast(parent)); +} + +extern "C" VQT6_API void vqt6_qslider_set_value(void* s, int value) { + if (s == nullptr) return; + static_cast(s)->setValue(value); +} + +extern "C" VQT6_API int vqt6_qslider_value(void* s) { + if (s == nullptr) return 0; + return static_cast(s)->value(); +} + +extern "C" VQT6_API void vqt6_qslider_set_minimum(void* s, int min) { + if (s == nullptr) return; + static_cast(s)->setMinimum(min); +} + +extern "C" VQT6_API void vqt6_qslider_set_maximum(void* s, int max) { + if (s == nullptr) return; + static_cast(s)->setMaximum(max); +} + +extern "C" VQT6_API void vqt6_qslider_set_range(void* s, int min, int max) { + if (s == nullptr) return; + static_cast(s)->setRange(min, max); +} + +extern "C" VQT6_API void vqt6_qslider_set_orientation(void* s, int orientation) { + if (s == nullptr) return; + static_cast(s)->setOrientation(static_cast(orientation)); +} + +extern "C" VQT6_API int vqt6_qslider_orientation(void* s) { + if (s == nullptr) return 0; + return static_cast(static_cast(s)->orientation()); +} + +extern "C" VQT6_API void vqt6_qslider_set_single_step(void* s, int step) { + if (s == nullptr) return; + static_cast(s)->setSingleStep(step); +} + +extern "C" VQT6_API void vqt6_qslider_set_page_step(void* s, int step) { + if (s == nullptr) return; + static_cast(s)->setPageStep(step); +} + +// ============================================================ +// QSpinBox +// ============================================================ +extern "C" VQT6_API void* vqt6_qspinbox_create(void) { + return new QSpinBox(); +} + +extern "C" VQT6_API void* vqt6_qspinbox_create_with_parent(void* parent) { + if (parent == nullptr) return nullptr; + return new QSpinBox(static_cast(parent)); +} + +extern "C" VQT6_API int vqt6_qspinbox_value(void* sb) { + if (sb == nullptr) return 0; + return static_cast(sb)->value(); +} + +extern "C" VQT6_API void vqt6_qspinbox_set_value(void* sb, int value) { + if (sb == nullptr) return; + static_cast(sb)->setValue(value); +} + +extern "C" VQT6_API void vqt6_qspinbox_set_minimum(void* sb, int min) { + if (sb == nullptr) return; + static_cast(sb)->setMinimum(min); +} + +extern "C" VQT6_API void vqt6_qspinbox_set_maximum(void* sb, int max) { + if (sb == nullptr) return; + static_cast(sb)->setMaximum(max); +} + +extern "C" VQT6_API void vqt6_qspinbox_set_range(void* sb, int min, int max) { + if (sb == nullptr) return; + static_cast(sb)->setRange(min, max); +} + +extern "C" VQT6_API int vqt6_qspinbox_minimum(void* sb) { + if (sb == nullptr) return 0; + return static_cast(sb)->minimum(); +} + +extern "C" VQT6_API int vqt6_qspinbox_maximum(void* sb) { + if (sb == nullptr) return 0; + return static_cast(sb)->maximum(); +} + +extern "C" VQT6_API void vqt6_qspinbox_set_single_step(void* sb, int step) { + if (sb == nullptr) return; + static_cast(sb)->setSingleStep(step); +} + +extern "C" VQT6_API void vqt6_qspinbox_set_prefix(void* sb, void* prefix) { + if (sb == nullptr || prefix == nullptr) return; + static_cast(sb)->setPrefix(*static_cast(prefix)); +} + +extern "C" VQT6_API void vqt6_qspinbox_set_suffix(void* sb, void* suffix) { + if (sb == nullptr || suffix == nullptr) return; + static_cast(sb)->setSuffix(*static_cast(suffix)); +} + +extern "C" VQT6_API void* vqt6_qspinbox_prefix(void* sb) { + if (sb == nullptr) return nullptr; + return new QString(static_cast(sb)->prefix()); +} + +extern "C" VQT6_API void* vqt6_qspinbox_suffix(void* sb) { + if (sb == nullptr) return nullptr; + return new QString(static_cast(sb)->suffix()); +} + +// ============================================================ +// Layouts +// ============================================================ +extern "C" VQT6_API void vqt6_qlayout_add_widget(void* layout, void* widget) { + if (layout == nullptr || widget == nullptr) return; + static_cast(layout)->addWidget(static_cast(widget)); +} + +extern "C" VQT6_API void vqt6_qlayout_remove_widget(void* layout, void* widget) { + if (layout == nullptr || widget == nullptr) return; + static_cast(layout)->removeWidget(static_cast(widget)); +} + +extern "C" VQT6_API int vqt6_qlayout_count(void* layout) { + if (layout == nullptr) return 0; + return static_cast(layout)->count(); +} + +extern "C" VQT6_API void* vqt6_qlayout_item_at(void* layout, int index) { + if (layout == nullptr) return nullptr; + QLayoutItem* item = static_cast(layout)->itemAt(index); + return item != nullptr ? item->widget() : nullptr; +} + +extern "C" VQT6_API void vqt6_qlayout_set_contents_margins(void* layout, int left, int top, int right, int bottom) { + if (layout == nullptr) return; + static_cast(layout)->setContentsMargins(left, top, right, bottom); +} + +extern "C" VQT6_API void vqt6_qlayout_set_spacing(void* layout, int spacing) { + if (layout == nullptr) return; + static_cast(layout)->setSpacing(spacing); +} + +extern "C" VQT6_API int vqt6_qlayout_spacing(void* layout) { + if (layout == nullptr) return 0; + return static_cast(layout)->spacing(); +} + +extern "C" VQT6_API void vqt6_qlayout_invalidate(void* layout) { + if (layout == nullptr) return; + static_cast(layout)->invalidate(); +} + +extern "C" VQT6_API void* vqt6_qhboxlayout_create(void) { + return new QHBoxLayout(); +} + +extern "C" VQT6_API void* vqt6_qhboxlayout_create_with_parent(void* parent) { + if (parent == nullptr) return nullptr; + return new QHBoxLayout(static_cast(parent)); +} + +extern "C" VQT6_API void vqt6_qhboxlayout_add_layout(void* layout, void* child) { + if (layout == nullptr || child == nullptr) return; + static_cast(layout)->addLayout(static_cast(child)); +} + +extern "C" VQT6_API void vqt6_qhboxlayout_add_stretch(void* layout, int stretch) { + if (layout == nullptr) return; + static_cast(layout)->addStretch(stretch); +} + +extern "C" VQT6_API void vqt6_qhboxlayout_add_spacing(void* layout, int size) { + if (layout == nullptr) return; + static_cast(layout)->addSpacing(size); +} + +extern "C" VQT6_API void* vqt6_qvboxlayout_create(void) { + return new QVBoxLayout(); +} + +extern "C" VQT6_API void* vqt6_qvboxlayout_create_with_parent(void* parent) { + if (parent == nullptr) return nullptr; + return new QVBoxLayout(static_cast(parent)); +} + +extern "C" VQT6_API void vqt6_qvboxlayout_add_layout(void* layout, void* child) { + if (layout == nullptr || child == nullptr) return; + static_cast(layout)->addLayout(static_cast(child)); +} + +extern "C" VQT6_API void vqt6_qvboxlayout_add_stretch(void* layout, int stretch) { + if (layout == nullptr) return; + static_cast(layout)->addStretch(stretch); +} + +extern "C" VQT6_API void vqt6_qvboxlayout_add_spacing(void* layout, int size) { + if (layout == nullptr) return; + static_cast(layout)->addSpacing(size); +} + +extern "C" VQT6_API void* vqt6_qgridlayout_create(void) { + return new QGridLayout(); +} + +extern "C" VQT6_API void* vqt6_qgridlayout_create_with_parent(void* parent) { + if (parent == nullptr) return nullptr; + return new QGridLayout(static_cast(parent)); +} + +extern "C" VQT6_API void vqt6_qgridlayout_add_widget(void* gl, void* w, int row, int col) { + if (gl == nullptr || w == nullptr) return; + static_cast(gl)->addWidget(static_cast(w), row, col); +} + +extern "C" VQT6_API void vqt6_qgridlayout_add_widget_with_span(void* gl, void* w, int row, int col, int row_span, int col_span) { + if (gl == nullptr || w == nullptr) return; + static_cast(gl)->addWidget(static_cast(w), row, col, row_span, col_span); +} + +extern "C" VQT6_API void* vqt6_qformlayout_create(void) { + return new QFormLayout(); +} + +extern "C" VQT6_API void* vqt6_qformlayout_create_with_parent(void* parent) { + if (parent == nullptr) return nullptr; + return new QFormLayout(static_cast(parent)); +} + +extern "C" VQT6_API void vqt6_qformlayout_add_row(void* fl, void* label, void* field) { + if (fl == nullptr || label == nullptr || field == nullptr) return; + static_cast(fl)->addRow(*static_cast(label), static_cast(field)); +} + +extern "C" VQT6_API void vqt6_qformlayout_add_row_widget_pair(void* fl, void* label, void* field) { + if (fl == nullptr || label == nullptr || field == nullptr) return; + static_cast(fl)->addRow(static_cast(label), static_cast(field)); +} + +// ============================================================ +// QStackedWidget / QTabWidget +// ============================================================ +extern "C" VQT6_API void* vqt6_qstackedwidget_create(void) { + return new QStackedWidget(); +} + +extern "C" VQT6_API void* vqt6_qstackedwidget_create_with_parent(void* parent) { + if (parent == nullptr) return nullptr; + return new QStackedWidget(static_cast(parent)); +} + +extern "C" VQT6_API int vqt6_qstackedwidget_add_widget(void* sw, void* w) { + if (sw == nullptr || w == nullptr) return -1; + return static_cast(sw)->addWidget(static_cast(w)); +} + +extern "C" VQT6_API void vqt6_qstackedwidget_remove_widget(void* sw, void* w) { + if (sw == nullptr || w == nullptr) return; + static_cast(sw)->removeWidget(static_cast(w)); +} + +extern "C" VQT6_API int vqt6_qstackedwidget_count(void* sw) { + if (sw == nullptr) return 0; + return static_cast(sw)->count(); +} + +extern "C" VQT6_API int vqt6_qstackedwidget_current_index(void* sw) { + if (sw == nullptr) return -1; + return static_cast(sw)->currentIndex(); +} + +extern "C" VQT6_API void vqt6_qstackedwidget_set_current_index(void* sw, int index) { + if (sw == nullptr) return; + static_cast(sw)->setCurrentIndex(index); +} + +extern "C" VQT6_API void* vqt6_qstackedwidget_current_widget(void* sw) { + if (sw == nullptr) return nullptr; + return static_cast(sw)->currentWidget(); +} + +extern "C" VQT6_API void* vqt6_qstackedwidget_widget(void* sw, int index) { + if (sw == nullptr) return nullptr; + return static_cast(sw)->widget(index); +} + +extern "C" VQT6_API void* vqt6_qtabwidget_create(void) { + return new QTabWidget(); +} + +extern "C" VQT6_API void* vqt6_qtabwidget_create_with_parent(void* parent) { + if (parent == nullptr) return nullptr; + return new QTabWidget(static_cast(parent)); +} + +extern "C" VQT6_API int vqt6_qtabwidget_add_tab(void* tw, void* w, void* label) { + if (tw == nullptr || w == nullptr || label == nullptr) return -1; + return static_cast(tw)->addTab(static_cast(w), *static_cast(label)); +} + +extern "C" VQT6_API int vqt6_qtabwidget_insert_tab(void* tw, int index, void* w, void* label) { + if (tw == nullptr || w == nullptr || label == nullptr) return -1; + return static_cast(tw)->insertTab(index, static_cast(w), *static_cast(label)); +} + +extern "C" VQT6_API void vqt6_qtabwidget_remove_tab(void* tw, int index) { + if (tw == nullptr) return; + static_cast(tw)->removeTab(index); +} + +extern "C" VQT6_API int vqt6_qtabwidget_count(void* tw) { + if (tw == nullptr) return 0; + return static_cast(tw)->count(); +} + +extern "C" VQT6_API int vqt6_qtabwidget_current_index(void* tw) { + if (tw == nullptr) return -1; + return static_cast(tw)->currentIndex(); +} + +extern "C" VQT6_API void vqt6_qtabwidget_set_current_index(void* tw, int index) { + if (tw == nullptr) return; + static_cast(tw)->setCurrentIndex(index); +} + +extern "C" VQT6_API void* vqt6_qtabwidget_tab_text(void* tw, int index) { + if (tw == nullptr) return nullptr; + return new QString(static_cast(tw)->tabText(index)); +} + +extern "C" VQT6_API void vqt6_qtabwidget_set_tab_text(void* tw, int index, void* text) { + if (tw == nullptr || text == nullptr) return; + static_cast(tw)->setTabText(index, *static_cast(text)); +} + +extern "C" VQT6_API void vqt6_qtabwidget_set_tabs_closable(void* tw, int closable) { + if (tw == nullptr) return; + static_cast(tw)->setTabsClosable(closable != 0); +} + +extern "C" VQT6_API int vqt6_qtabwidget_tabs_closable(void* tw) { + if (tw == nullptr) return 0; + return static_cast(tw)->tabsClosable() ? 1 : 0; +} + +// ============================================================ +// QMenuBar / QMenu / QAction +// ============================================================ +extern "C" VQT6_API void* vqt6_qmenubar_create(void) { + return new QMenuBar(); +} + +extern "C" VQT6_API void* vqt6_qmenubar_create_with_parent(void* parent) { + if (parent == nullptr) return nullptr; + return new QMenuBar(static_cast(parent)); +} + +extern "C" VQT6_API void* vqt6_qmenubar_add_menu(void* mb, void* title) { + if (mb == nullptr || title == nullptr) return nullptr; + return static_cast(mb)->addMenu(*static_cast(title)); +} + +extern "C" VQT6_API void vqt6_qmenubar_add_menu_with_menu(void* mb, void* menu) { + if (mb == nullptr || menu == nullptr) return; + static_cast(mb)->addMenu(static_cast(menu)); +} + +extern "C" VQT6_API void vqt6_qmenubar_add_action(void* mb, void* action) { + if (mb == nullptr || action == nullptr) return; + static_cast(mb)->addAction(static_cast(action)); +} + +extern "C" VQT6_API void vqt6_qmenubar_clear(void* mb) { + if (mb == nullptr) return; + static_cast(mb)->clear(); +} + +extern "C" VQT6_API void* vqt6_qmenu_create(void) { + return new QMenu(); +} + +extern "C" VQT6_API void* vqt6_qmenu_create_with_title(void* title) { + if (title == nullptr) return nullptr; + return new QMenu(*static_cast(title)); +} + +extern "C" VQT6_API void* vqt6_qmenu_create_with_title_parent(void* title, void* parent) { + if (title == nullptr || parent == nullptr) return nullptr; + return new QMenu(*static_cast(title), static_cast(parent)); +} + +extern "C" VQT6_API void* vqt6_qmenu_add_menu(void* menu, void* title) { + if (menu == nullptr || title == nullptr) return nullptr; + return static_cast(menu)->addMenu(*static_cast(title)); +} + +extern "C" VQT6_API void vqt6_qmenu_add_action(void* menu, void* action) { + if (menu == nullptr || action == nullptr) return; + static_cast(menu)->addAction(static_cast(action)); +} + +extern "C" VQT6_API void vqt6_qmenu_add_separator(void* menu) { + if (menu == nullptr) return; + static_cast(menu)->addSeparator(); +} + +extern "C" VQT6_API void vqt6_qmenu_clear(void* menu) { + if (menu == nullptr) return; + static_cast(menu)->clear(); +} + +extern "C" VQT6_API void vqt6_qmenu_set_title(void* menu, void* title) { + if (menu == nullptr || title == nullptr) return; + static_cast(menu)->setTitle(*static_cast(title)); +} + +extern "C" VQT6_API void* vqt6_qmenu_title(void* menu) { + if (menu == nullptr) return nullptr; + return new QString(static_cast(menu)->title()); +} + +extern "C" VQT6_API void* vqt6_qmenu_add_action_with_text(void* menu, void* text) { + if (menu == nullptr || text == nullptr) return nullptr; + return static_cast(menu)->addAction(*static_cast(text)); +} + +extern "C" VQT6_API void* vqt6_qaction_create(void) { + return new QAction(); +} + +extern "C" VQT6_API void* vqt6_qaction_create_with_text(void* text) { + if (text == nullptr) return nullptr; + return new QAction(*static_cast(text)); +} + +extern "C" VQT6_API void* vqt6_qaction_create_with_text_parent(void* text, void* parent) { + if (text == nullptr || parent == nullptr) return nullptr; + return new QAction(*static_cast(text), static_cast(parent)); +} + +extern "C" VQT6_API void vqt6_qaction_set_text(void* action, void* text) { + if (action == nullptr || text == nullptr) return; + static_cast(action)->setText(*static_cast(text)); +} + +extern "C" VQT6_API void* vqt6_qaction_text(void* action) { + if (action == nullptr) return nullptr; + return new QString(static_cast(action)->text()); +} + +extern "C" VQT6_API void vqt6_qaction_set_icon(void* action, void* icon) { + if (action == nullptr || icon == nullptr) return; + static_cast(action)->setIcon(*static_cast(icon)); +} + +extern "C" VQT6_API void* vqt6_qaction_icon(void* action) { + if (action == nullptr) return nullptr; + return new QIcon(static_cast(action)->icon()); +} + +extern "C" VQT6_API void vqt6_qaction_set_shortcut(void* action, void* key_sequence) { + if (action == nullptr || key_sequence == nullptr) return; + static_cast(action)->setShortcut(QKeySequence(*static_cast(key_sequence))); +} + +extern "C" VQT6_API void* vqt6_qaction_shortcut(void* action) { + if (action == nullptr) return nullptr; + return new QString(static_cast(action)->shortcut().toString()); +} + +extern "C" VQT6_API void vqt6_qaction_set_checkable(void* action, int checkable) { + if (action == nullptr) return; + static_cast(action)->setCheckable(checkable != 0); +} + +extern "C" VQT6_API int vqt6_qaction_is_checkable(void* action) { + if (action == nullptr) return 0; + return static_cast(action)->isCheckable() ? 1 : 0; +} + +extern "C" VQT6_API void vqt6_qaction_set_checked(void* action, int checked) { + if (action == nullptr) return; + static_cast(action)->setChecked(checked != 0); +} + +extern "C" VQT6_API int vqt6_qaction_is_checked(void* action) { + if (action == nullptr) return 0; + return static_cast(action)->isChecked() ? 1 : 0; +} + +extern "C" VQT6_API void vqt6_qaction_set_enabled(void* action, int enabled) { + if (action == nullptr) return; + static_cast(action)->setEnabled(enabled != 0); +} + +extern "C" VQT6_API int vqt6_qaction_is_enabled(void* action) { + if (action == nullptr) return 0; + return static_cast(action)->isEnabled() ? 1 : 0; +} + +extern "C" VQT6_API void vqt6_qaction_trigger(void* action) { + if (action == nullptr) return; + static_cast(action)->trigger(); +} + +// ============================================================ +// QStatusBar / QToolBar +// ============================================================ +extern "C" VQT6_API void* vqt6_qstatusbar_create(void) { + return new QStatusBar(); +} + +extern "C" VQT6_API void* vqt6_qstatusbar_create_with_parent(void* parent) { + if (parent == nullptr) return nullptr; + return new QStatusBar(static_cast(parent)); +} + +extern "C" VQT6_API void vqt6_qstatusbar_show_message(void* sb, void* message, int timeout_ms) { + if (sb == nullptr || message == nullptr) return; + static_cast(sb)->showMessage(*static_cast(message), timeout_ms); +} + +extern "C" VQT6_API void vqt6_qstatusbar_clear_message(void* sb) { + if (sb == nullptr) return; + static_cast(sb)->clearMessage(); +} + +extern "C" VQT6_API void* vqt6_qstatusbar_current_message(void* sb) { + if (sb == nullptr) return nullptr; + return new QString(static_cast(sb)->currentMessage()); +} + +extern "C" VQT6_API void vqt6_qstatusbar_add_widget(void* sb, void* w, int stretch) { + if (sb == nullptr || w == nullptr) return; + static_cast(sb)->addWidget(static_cast(w), stretch); +} + +extern "C" VQT6_API void vqt6_qstatusbar_add_permanent_widget(void* sb, void* w, int stretch) { + if (sb == nullptr || w == nullptr) return; + static_cast(sb)->addPermanentWidget(static_cast(w), stretch); +} + +extern "C" VQT6_API void* vqt6_qtoolbar_create(void) { + return new QToolBar(); +} + +extern "C" VQT6_API void* vqt6_qtoolbar_create_with_parent(void* parent) { + if (parent == nullptr) return nullptr; + return new QToolBar(static_cast(parent)); +} + +extern "C" VQT6_API void* vqt6_qtoolbar_add_widget(void* tb, void* w) { + if (tb == nullptr || w == nullptr) return nullptr; + return static_cast(tb)->addWidget(static_cast(w)); +} + +extern "C" VQT6_API void vqt6_qtoolbar_add_action(void* tb, void* action) { + if (tb == nullptr || action == nullptr) return; + static_cast(tb)->addAction(static_cast(action)); +} + +extern "C" VQT6_API void vqt6_qtoolbar_add_separator(void* tb) { + if (tb == nullptr) return; + static_cast(tb)->addSeparator(); +} + +extern "C" VQT6_API void vqt6_qtoolbar_set_icon_size(void* tb, int w, int h) { + if (tb == nullptr) return; + static_cast(tb)->setIconSize(QSize(w, h)); +} + +extern "C" VQT6_API void vqt6_qtoolbar_set_orientation(void* tb, int orientation) { + if (tb == nullptr) return; + static_cast(tb)->setOrientation(static_cast(orientation)); +} + +extern "C" VQT6_API int vqt6_qtoolbar_orientation(void* tb) { + if (tb == nullptr) return 0; + return static_cast(static_cast(tb)->orientation()); +} + +// ============================================================ +// QMessageBox +// ============================================================ +extern "C" VQT6_API int vqt6_qmessagebox_information(void* parent, void* title, void* text, int buttons) { + if (title == nullptr || text == nullptr) return 0; + QMessageBox mb(static_cast(0x0400), *static_cast(title), *static_cast(text), + static_cast(buttons), static_cast(parent)); + return mb.exec(); +} + +extern "C" VQT6_API int vqt6_qmessagebox_warning(void* parent, void* title, void* text, int buttons) { + if (title == nullptr || text == nullptr) return 0; + QMessageBox mb(static_cast(0x0200), *static_cast(title), *static_cast(text), + static_cast(buttons), static_cast(parent)); + return mb.exec(); +} + +extern "C" VQT6_API int vqt6_qmessagebox_critical(void* parent, void* title, void* text, int buttons) { + if (title == nullptr || text == nullptr) return 0; + QMessageBox mb(static_cast(0x0100), *static_cast(title), *static_cast(text), + static_cast(buttons), static_cast(parent)); + return mb.exec(); +} + +extern "C" VQT6_API int vqt6_qmessagebox_question(void* parent, void* title, void* text, int buttons) { + if (title == nullptr || text == nullptr) return 0; + QMessageBox mb(static_cast(0x0200), *static_cast(title), *static_cast(text), + static_cast(buttons), static_cast(parent)); + return mb.exec(); +} + +extern "C" VQT6_API void vqt6_qmessagebox_about(void* parent, void* title, void* text) { + if (title == nullptr || text == nullptr) return; + QMessageBox::about(static_cast(parent), *static_cast(title), *static_cast(text)); +} + +extern "C" VQT6_API void vqt6_qmessagebox_about_qt(void* parent) { + QMessageBox::aboutQt(static_cast(parent)); +} + +// ============================================================ +// QFileDialog +// ============================================================ +extern "C" VQT6_API void* vqt6_qfiledialog_get_open_file_name(void* parent, void* caption, void* dir, void* filter) { + QString* result = new QString(QFileDialog::getOpenFileName( + static_cast(parent), + caption != nullptr ? *static_cast(caption) : QString(), + dir != nullptr ? *static_cast(dir) : QString(), + filter != nullptr ? *static_cast(filter) : QString() + )); + return result; +} + +extern "C" VQT6_API void* vqt6_qfiledialog_get_save_file_name(void* parent, void* caption, void* dir, void* filter) { + QString* result = new QString(QFileDialog::getSaveFileName( + static_cast(parent), + caption != nullptr ? *static_cast(caption) : QString(), + dir != nullptr ? *static_cast(dir) : QString(), + filter != nullptr ? *static_cast(filter) : QString() + )); + return result; +} + +extern "C" VQT6_API void* vqt6_qfiledialog_get_existing_directory(void* parent, void* caption, void* dir) { + QString* result = new QString(QFileDialog::getExistingDirectory( + static_cast(parent), + caption != nullptr ? *static_cast(caption) : QString(), + dir != nullptr ? *static_cast(dir) : QString() + )); + return result; +} + +extern "C" VQT6_API void* vqt6_qfiledialog_get_open_file_names(void* parent, void* caption, void* dir, void* filter) { + return new QStringList(QFileDialog::getOpenFileNames( + static_cast(parent), + caption != nullptr ? *static_cast(caption) : QString(), + dir != nullptr ? *static_cast(dir) : QString(), + filter != nullptr ? *static_cast(filter) : QString() + )); +} diff --git a/includes/vqt6/_bridge_widgets.h b/includes/vqt6/_bridge_widgets.h new file mode 100644 index 0000000..0197377 --- /dev/null +++ b/includes/vqt6/_bridge_widgets.h @@ -0,0 +1,432 @@ +// ============================================================ +// vqt6/_bridge_widgets.h — QtWidgets C 桥接函数声明 +// ============================================================ + +#ifndef VQT6_BRIDGE_WIDGETS_H +#define VQT6_BRIDGE_WIDGETS_H + +#include "_bridge.h" + +#ifdef __cplusplus +extern "C" { +#endif + +// ============================================================ +// QApplication +// ============================================================ +VQT6_API void* vqt6_qapplication_create(int argc, char** argv); +VQT6_API void* vqt6_qapplication_instance(void); +VQT6_API int vqt6_qapplication_exec(void* app); +VQT6_API void vqt6_qapplication_quit(void* app); +VQT6_API void vqt6_qapplication_exit(void* app, int exit_code); +VQT6_API void vqt6_qapplication_process_events(void* app); +VQT6_API int vqt6_qapplication_desktop_width(void* app); +VQT6_API int vqt6_qapplication_desktop_height(void* app); +VQT6_API void vqt6_qapplication_set_quit_on_last_window_closed(void* app, int quit); +VQT6_API int vqt6_qapplication_quit_on_last_window_closed(void* app); + +// ============================================================ +// QWidget +// ============================================================ +VQT6_API void* vqt6_qwidget_create(void); +VQT6_API void* vqt6_qwidget_create_with_parent(void* parent); +VQT6_API void vqt6_qwidget_show(void* widget); +VQT6_API void vqt6_qwidget_hide(void* widget); +VQT6_API int vqt6_qwidget_close(void* widget); +VQT6_API int vqt6_qwidget_is_visible(void* widget); +VQT6_API void vqt6_qwidget_set_visible(void* widget, int visible); +VQT6_API void vqt6_qwidget_set_geometry(void* widget, int x, int y, int w, int h); +VQT6_API void vqt6_qwidget_geometry(void* widget, int* x, int* y, int* w, int* h); +VQT6_API void vqt6_qwidget_resize(void* widget, int w, int h); +VQT6_API void vqt6_qwidget_size(void* widget, int* w, int* h); +VQT6_API void vqt6_qwidget_move(void* widget, int x, int y); +VQT6_API void vqt6_qwidget_pos(void* widget, int* x, int* y); +VQT6_API int vqt6_qwidget_width(void* widget); +VQT6_API int vqt6_qwidget_height(void* widget); +VQT6_API int vqt6_qwidget_x(void* widget); +VQT6_API int vqt6_qwidget_y(void* widget); +VQT6_API void vqt6_qwidget_set_window_title(void* widget, void* title); +VQT6_API void* vqt6_qwidget_window_title(void* widget); +VQT6_API void vqt6_qwidget_set_text(void* widget, void* text); +VQT6_API void* vqt6_qwidget_text(void* widget); +VQT6_API void vqt6_qwidget_set_enabled(void* widget, int enabled); +VQT6_API int vqt6_qwidget_is_enabled(void* widget); +VQT6_API void vqt6_qwidget_set_parent(void* widget, void* parent); +VQT6_API void* vqt6_qwidget_parent_widget(void* widget); +VQT6_API void vqt6_qwidget_set_focus(void* widget); +VQT6_API void vqt6_qwidget_clear_focus(void* widget); +VQT6_API int vqt6_qwidget_has_focus(void* widget); +VQT6_API void vqt6_qwidget_set_focus_policy(void* widget, int policy); +VQT6_API void vqt6_qwidget_update(void* widget); +VQT6_API void vqt6_qwidget_repaint(void* widget); +VQT6_API void vqt6_qwidget_set_update_enabled(void* widget, int enabled); +VQT6_API void vqt6_qwidget_set_window_flags(void* widget, int flags); +VQT6_API int vqt6_qwidget_window_flags(void* widget); +VQT6_API void vqt6_qwidget_set_cursor(void* widget, void* cursor); +VQT6_API void* vqt6_qwidget_cursor(void* widget); +VQT6_API void vqt6_qwidget_unset_cursor(void* widget); +VQT6_API void vqt6_qwidget_set_tool_tip(void* widget, void* tip); +VQT6_API void* vqt6_qwidget_tool_tip(void* widget); +VQT6_API void vqt6_qwidget_set_status_tip(void* widget, void* tip); +VQT6_API void* vqt6_qwidget_status_tip(void* widget); +VQT6_API void vqt6_qwidget_set_minimum_size(void* widget, int w, int h); +VQT6_API void vqt6_qwidget_set_maximum_size(void* widget, int w, int h); +VQT6_API void vqt6_qwidget_set_fixed_size(void* widget, int w, int h); +VQT6_API void vqt6_qwidget_minimum_size(void* widget, int* w, int* h); +VQT6_API void vqt6_qwidget_maximum_size(void* widget, int* w, int* h); + +// ============================================================ +// QDialog +// ============================================================ +VQT6_API void* vqt6_qdialog_create(void); +VQT6_API void* vqt6_qdialog_create_with_parent(void* parent); +VQT6_API int vqt6_qdialog_exec(void* dialog); +VQT6_API void vqt6_qdialog_done(void* dialog, int result); +VQT6_API void vqt6_qdialog_accept(void* dialog); +VQT6_API void vqt6_qdialog_reject(void* dialog); +VQT6_API void vqt6_qdialog_set_result(void* dialog, int result); +VQT6_API int vqt6_qdialog_result(void* dialog); +VQT6_API void vqt6_qdialog_set_modal(void* dialog, int modal); +VQT6_API int vqt6_qdialog_is_modal(void* dialog); + +// ============================================================ +// QMainWindow +// ============================================================ +VQT6_API void* vqt6_qmainwindow_create(void); +VQT6_API void* vqt6_qmainwindow_create_with_parent(void* parent); +VQT6_API void vqt6_qmainwindow_set_central_widget(void* mw, void* widget); +VQT6_API void* vqt6_qmainwindow_central_widget(void* mw); +VQT6_API void* vqt6_qmainwindow_menu_bar(void* mw); +VQT6_API void vqt6_qmainwindow_set_menu_bar(void* mw, void* menubar); +VQT6_API void* vqt6_qmainwindow_status_bar(void* mw); +VQT6_API void vqt6_qmainwindow_set_status_bar(void* mw, void* statusbar); +VQT6_API void vqt6_qmainwindow_add_tool_bar(void* mw, void* toolbar); +VQT6_API void vqt6_qmainwindow_add_tool_bar_break(void* mw); + +// ============================================================ +// QLabel +// ============================================================ +VQT6_API void* vqt6_qlabel_create(void); +VQT6_API void* vqt6_qlabel_create_with_text(void* text); +VQT6_API void* vqt6_qlabel_create_with_text_parent(void* text, void* parent); +VQT6_API void vqt6_qlabel_set_text(void* label, void* text); +VQT6_API void* vqt6_qlabel_text(void* label); +VQT6_API void vqt6_qlabel_set_alignment(void* label, int alignment); +VQT6_API int vqt6_qlabel_alignment(void* label); +VQT6_API void vqt6_qlabel_set_pixmap(void* label, void* pixmap); +VQT6_API void* vqt6_qlabel_pixmap(void* label); +VQT6_API void vqt6_qlabel_set_indent(void* label, int indent); +VQT6_API void vqt6_qlabel_set_margin(void* label, int margin); +VQT6_API void vqt6_qlabel_set_word_wrap(void* label, int wrap); +VQT6_API int vqt6_qlabel_word_wrap(void* label); + +// ============================================================ +// QPushButton +// ============================================================ +VQT6_API void* vqt6_qpushbutton_create(void); +VQT6_API void* vqt6_qpushbutton_create_with_text(void* text); +VQT6_API void* vqt6_qpushbutton_create_with_text_parent(void* text, void* parent); +VQT6_API void vqt6_qpushbutton_set_text(void* btn, void* text); +VQT6_API void* vqt6_qpushbutton_text(void* btn); +VQT6_API void vqt6_qpushbutton_set_icon(void* btn, void* icon); +VQT6_API void* vqt6_qpushbutton_icon(void* btn); +VQT6_API void vqt6_qpushbutton_set_default(void* btn, int is_default); +VQT6_API int vqt6_qpushbutton_is_default(void* btn); +VQT6_API void vqt6_qpushbutton_set_flat(void* btn, int flat); +VQT6_API int vqt6_qpushbutton_is_flat(void* btn); +VQT6_API void vqt6_qpushbutton_set_checkable(void* btn, int checkable); +VQT6_API int vqt6_qpushbutton_is_checkable(void* btn); +VQT6_API void vqt6_qpushbutton_set_checked(void* btn, int checked); +VQT6_API int vqt6_qpushbutton_is_checked(void* btn); +VQT6_API void vqt6_qpushbutton_click(void* btn); + +// ============================================================ +// QLineEdit +// ============================================================ +VQT6_API void* vqt6_qlineedit_create(void); +VQT6_API void* vqt6_qlineedit_create_with_text(void* text); +VQT6_API void* vqt6_qlineedit_create_with_text_parent(void* text, void* parent); +VQT6_API void* vqt6_qlineedit_text(void* le); +VQT6_API void vqt6_qlineedit_set_text(void* le, void* text); +VQT6_API void* vqt6_qlineedit_placeholder_text(void* le); +VQT6_API void vqt6_qlineedit_set_placeholder_text(void* le, void* text); +VQT6_API void vqt6_qlineedit_set_max_length(void* le, int max); +VQT6_API int vqt6_qlineedit_max_length(void* le); +VQT6_API void vqt6_qlineedit_set_read_only(void* le, int ro); +VQT6_API int vqt6_qlineedit_is_read_only(void* le); +VQT6_API void vqt6_qlineedit_set_echo_mode(void* le, int mode); +VQT6_API int vqt6_qlineedit_echo_mode(void* le); +VQT6_API void vqt6_qlineedit_select_all(void* le); +VQT6_API void vqt6_qlineedit_clear(void* le); + +// ============================================================ +// QTextEdit / QPlainTextEdit +// ============================================================ +VQT6_API void* vqt6_qtextedit_create(void); +VQT6_API void* vqt6_qtextedit_create_with_parent(void* parent); +VQT6_API void* vqt6_qtextedit_to_plain_text(void* te); +VQT6_API void vqt6_qtextedit_set_plain_text(void* te, void* text); +VQT6_API void vqt6_qtextedit_set_html(void* te, void* html); +VQT6_API void* vqt6_qtextedit_to_html(void* te); +VQT6_API void vqt6_qtextedit_append(void* te, void* text); +VQT6_API void vqt6_qtextedit_clear(void* te); +VQT6_API void vqt6_qtextedit_set_read_only(void* te, int ro); +VQT6_API int vqt6_qtextedit_is_read_only(void* te); + +VQT6_API void* vqt6_qplaintextedit_create(void); +VQT6_API void* vqt6_qplaintextedit_create_with_parent(void* parent); +VQT6_API void* vqt6_qplaintextedit_to_plain_text(void* pte); +VQT6_API void vqt6_qplaintextedit_set_plain_text(void* pte, void* text); +VQT6_API void vqt6_qplaintextedit_append(void* pte, void* text); +VQT6_API void vqt6_qplaintextedit_clear(void* pte); +VQT6_API void vqt6_qplaintextedit_set_read_only(void* pte, int ro); +VQT6_API int vqt6_qplaintextedit_line_count(void* pte); + +// ============================================================ +// QCheckBox / QRadioButton +// ============================================================ +VQT6_API void* vqt6_qcheckbox_create(void); +VQT6_API void* vqt6_qcheckbox_create_with_text(void* text); +VQT6_API void* vqt6_qcheckbox_create_with_text_parent(void* text, void* parent); +VQT6_API void vqt6_qcheckbox_set_checked(void* cb, int checked); +VQT6_API int vqt6_qcheckbox_is_checked(void* cb); +VQT6_API void vqt6_qcheckbox_set_text(void* cb, void* text); +VQT6_API void* vqt6_qcheckbox_text(void* cb); +VQT6_API void vqt6_qcheckbox_set_tristate(void* cb, int tristate); +VQT6_API int vqt6_qcheckbox_is_tristate(void* cb); + +VQT6_API void* vqt6_qradiobutton_create(void); +VQT6_API void* vqt6_qradiobutton_create_with_text(void* text); +VQT6_API void* vqt6_qradiobutton_create_with_text_parent(void* text, void* parent); +VQT6_API void vqt6_qradiobutton_set_checked(void* rb, int checked); +VQT6_API int vqt6_qradiobutton_is_checked(void* rb); +VQT6_API void vqt6_qradiobutton_set_text(void* rb, void* text); +VQT6_API void* vqt6_qradiobutton_text(void* rb); + +// ============================================================ +// QComboBox +// ============================================================ +VQT6_API void* vqt6_qcombobox_create(void); +VQT6_API void* vqt6_qcombobox_create_with_parent(void* parent); +VQT6_API void vqt6_qcombobox_add_item(void* cb, void* text); +VQT6_API void vqt6_qcombobox_add_items(void* cb, void* items); +VQT6_API void vqt6_qcombobox_insert_item(void* cb, int index, void* text); +VQT6_API void vqt6_qcombobox_remove_item(void* cb, int index); +VQT6_API void vqt6_qcombobox_clear(void* cb); +VQT6_API int vqt6_qcombobox_count(void* cb); +VQT6_API int vqt6_qcombobox_current_index(void* cb); +VQT6_API void vqt6_qcombobox_set_current_index(void* cb, int index); +VQT6_API void* vqt6_qcombobox_current_text(void* cb); +VQT6_API void* vqt6_qcombobox_item_text(void* cb, int index); +VQT6_API void vqt6_qcombobox_set_editable(void* cb, int editable); +VQT6_API int vqt6_qcombobox_is_editable(void* cb); + +// ============================================================ +// QListWidget +// ============================================================ +VQT6_API void* vqt6_qlistwidget_create(void); +VQT6_API void* vqt6_qlistwidget_create_with_parent(void* parent); +VQT6_API void vqt6_qlistwidget_add_item(void* lw, void* text); +VQT6_API void vqt6_qlistwidget_add_items(void* lw, void* items); +VQT6_API void vqt6_qlistwidget_insert_item(void* lw, int row, void* text); +VQT6_API void vqt6_qlistwidget_remove_item_widget(void* lw, int row); +VQT6_API void* vqt6_qlistwidget_take_item(void* lw, int row); +VQT6_API void vqt6_qlistwidget_clear(void* lw); +VQT6_API int vqt6_qlistwidget_count(void* lw); +VQT6_API int vqt6_qlistwidget_current_row(void* lw); +VQT6_API void vqt6_qlistwidget_set_current_row(void* lw, int row); +VQT6_API void* vqt6_qlistwidget_current_item_text(void* lw); +VQT6_API void* vqt6_qlistwidget_item_text(void* lw, int row); +VQT6_API void vqt6_qlistwidget_set_item_text(void* lw, int row, void* text); + +// ============================================================ +// QProgressBar +// ============================================================ +VQT6_API void* vqt6_qprogressbar_create(void); +VQT6_API void* vqt6_qprogressbar_create_with_parent(void* parent); +VQT6_API void vqt6_qprogressbar_set_value(void* pb, int value); +VQT6_API int vqt6_qprogressbar_value(void* pb); +VQT6_API void vqt6_qprogressbar_set_minimum(void* pb, int min); +VQT6_API void vqt6_qprogressbar_set_maximum(void* pb, int max); +VQT6_API void vqt6_qprogressbar_set_range(void* pb, int min, int max); +VQT6_API int vqt6_qprogressbar_minimum(void* pb); +VQT6_API int vqt6_qprogressbar_maximum(void* pb); +VQT6_API void vqt6_qprogressbar_set_text_visible(void* pb, int visible); +VQT6_API void vqt6_qprogressbar_set_format(void* pb, void* format); +VQT6_API void vqt6_qprogressbar_reset(void* pb); + +// ============================================================ +// QSlider +// ============================================================ +VQT6_API void* vqt6_qslider_create(void); +VQT6_API void* vqt6_qslider_create_with_orientation(int orientation); +VQT6_API void* vqt6_qslider_create_with_orientation_parent(int orientation, void* parent); +VQT6_API void vqt6_qslider_set_value(void* s, int value); +VQT6_API int vqt6_qslider_value(void* s); +VQT6_API void vqt6_qslider_set_minimum(void* s, int min); +VQT6_API void vqt6_qslider_set_maximum(void* s, int max); +VQT6_API void vqt6_qslider_set_range(void* s, int min, int max); +VQT6_API void vqt6_qslider_set_orientation(void* s, int orientation); +VQT6_API int vqt6_qslider_orientation(void* s); +VQT6_API void vqt6_qslider_set_single_step(void* s, int step); +VQT6_API void vqt6_qslider_set_page_step(void* s, int step); + +// ============================================================ +// QSpinBox +// ============================================================ +VQT6_API void* vqt6_qspinbox_create(void); +VQT6_API void* vqt6_qspinbox_create_with_parent(void* parent); +VQT6_API int vqt6_qspinbox_value(void* sb); +VQT6_API void vqt6_qspinbox_set_value(void* sb, int value); +VQT6_API void vqt6_qspinbox_set_minimum(void* sb, int min); +VQT6_API void vqt6_qspinbox_set_maximum(void* sb, int max); +VQT6_API void vqt6_qspinbox_set_range(void* sb, int min, int max); +VQT6_API int vqt6_qspinbox_minimum(void* sb); +VQT6_API int vqt6_qspinbox_maximum(void* sb); +VQT6_API void vqt6_qspinbox_set_single_step(void* sb, int step); +VQT6_API void vqt6_qspinbox_set_prefix(void* sb, void* prefix); +VQT6_API void vqt6_qspinbox_set_suffix(void* sb, void* suffix); +VQT6_API void* vqt6_qspinbox_prefix(void* sb); +VQT6_API void* vqt6_qspinbox_suffix(void* sb); + +// ============================================================ +// Layouts +// ============================================================ +VQT6_API void vqt6_qlayout_add_widget(void* layout, void* widget); +VQT6_API void vqt6_qlayout_remove_widget(void* layout, void* widget); +VQT6_API int vqt6_qlayout_count(void* layout); +VQT6_API void* vqt6_qlayout_item_at(void* layout, int index); +VQT6_API void vqt6_qlayout_set_contents_margins(void* layout, int left, int top, int right, int bottom); +VQT6_API void vqt6_qlayout_set_spacing(void* layout, int spacing); +VQT6_API int vqt6_qlayout_spacing(void* layout); +VQT6_API void vqt6_qlayout_invalidate(void* layout); + +VQT6_API void* vqt6_qhboxlayout_create(void); +VQT6_API void* vqt6_qhboxlayout_create_with_parent(void* parent); +VQT6_API void vqt6_qhboxlayout_add_layout(void* layout, void* child); +VQT6_API void vqt6_qhboxlayout_add_stretch(void* layout, int stretch); +VQT6_API void vqt6_qhboxlayout_add_spacing(void* layout, int size); + +VQT6_API void* vqt6_qvboxlayout_create(void); +VQT6_API void* vqt6_qvboxlayout_create_with_parent(void* parent); +VQT6_API void vqt6_qvboxlayout_add_layout(void* layout, void* child); +VQT6_API void vqt6_qvboxlayout_add_stretch(void* layout, int stretch); +VQT6_API void vqt6_qvboxlayout_add_spacing(void* layout, int size); + +VQT6_API void* vqt6_qgridlayout_create(void); +VQT6_API void* vqt6_qgridlayout_create_with_parent(void* parent); +VQT6_API void vqt6_qgridlayout_add_widget(void* gl, void* w, int row, int col); +VQT6_API void vqt6_qgridlayout_add_widget_with_span(void* gl, void* w, int row, int col, int row_span, int col_span); + +VQT6_API void* vqt6_qformlayout_create(void); +VQT6_API void* vqt6_qformlayout_create_with_parent(void* parent); +VQT6_API void vqt6_qformlayout_add_row(void* fl, void* label, void* field); +VQT6_API void vqt6_qformlayout_add_row_widget_pair(void* fl, void* label, void* field); + +// ============================================================ +// QStackedWidget / QTabWidget +// ============================================================ +VQT6_API void* vqt6_qstackedwidget_create(void); +VQT6_API void* vqt6_qstackedwidget_create_with_parent(void* parent); +VQT6_API int vqt6_qstackedwidget_add_widget(void* sw, void* w); +VQT6_API void vqt6_qstackedwidget_remove_widget(void* sw, void* w); +VQT6_API int vqt6_qstackedwidget_count(void* sw); +VQT6_API int vqt6_qstackedwidget_current_index(void* sw); +VQT6_API void vqt6_qstackedwidget_set_current_index(void* sw, int index); +VQT6_API void* vqt6_qstackedwidget_current_widget(void* sw); +VQT6_API void* vqt6_qstackedwidget_widget(void* sw, int index); + +VQT6_API void* vqt6_qtabwidget_create(void); +VQT6_API void* vqt6_qtabwidget_create_with_parent(void* parent); +VQT6_API int vqt6_qtabwidget_add_tab(void* tw, void* w, void* label); +VQT6_API int vqt6_qtabwidget_insert_tab(void* tw, int index, void* w, void* label); +VQT6_API void vqt6_qtabwidget_remove_tab(void* tw, int index); +VQT6_API int vqt6_qtabwidget_count(void* tw); +VQT6_API int vqt6_qtabwidget_current_index(void* tw); +VQT6_API void vqt6_qtabwidget_set_current_index(void* tw, int index); +VQT6_API void* vqt6_qtabwidget_tab_text(void* tw, int index); +VQT6_API void vqt6_qtabwidget_set_tab_text(void* tw, int index, void* text); +VQT6_API void vqt6_qtabwidget_set_tabs_closable(void* tw, int closable); +VQT6_API int vqt6_qtabwidget_tabs_closable(void* tw); + +// ============================================================ +// QMenuBar / QMenu / QAction +// ============================================================ +VQT6_API void* vqt6_qmenubar_create(void); +VQT6_API void* vqt6_qmenubar_create_with_parent(void* parent); +VQT6_API void* vqt6_qmenubar_add_menu(void* mb, void* title); +VQT6_API void vqt6_qmenubar_add_menu_with_menu(void* mb, void* menu); +VQT6_API void vqt6_qmenubar_add_action(void* mb, void* action); +VQT6_API void vqt6_qmenubar_clear(void* mb); + +VQT6_API void* vqt6_qmenu_create(void); +VQT6_API void* vqt6_qmenu_create_with_title(void* title); +VQT6_API void* vqt6_qmenu_create_with_title_parent(void* title, void* parent); +VQT6_API void* vqt6_qmenu_add_menu(void* menu, void* title); +VQT6_API void vqt6_qmenu_add_action(void* menu, void* action); +VQT6_API void vqt6_qmenu_add_separator(void* menu); +VQT6_API void vqt6_qmenu_clear(void* menu); +VQT6_API void vqt6_qmenu_set_title(void* menu, void* title); +VQT6_API void* vqt6_qmenu_title(void* menu); +VQT6_API void* vqt6_qmenu_add_action_with_text(void* menu, void* text); + +VQT6_API void* vqt6_qaction_create(void); +VQT6_API void* vqt6_qaction_create_with_text(void* text); +VQT6_API void* vqt6_qaction_create_with_text_parent(void* text, void* parent); +VQT6_API void vqt6_qaction_set_text(void* action, void* text); +VQT6_API void* vqt6_qaction_text(void* action); +VQT6_API void vqt6_qaction_set_icon(void* action, void* icon); +VQT6_API void* vqt6_qaction_icon(void* action); +VQT6_API void vqt6_qaction_set_shortcut(void* action, void* key_sequence); +VQT6_API void* vqt6_qaction_shortcut(void* action); +VQT6_API void vqt6_qaction_set_checkable(void* action, int checkable); +VQT6_API int vqt6_qaction_is_checkable(void* action); +VQT6_API void vqt6_qaction_set_checked(void* action, int checked); +VQT6_API int vqt6_qaction_is_checked(void* action); +VQT6_API void vqt6_qaction_set_enabled(void* action, int enabled); +VQT6_API int vqt6_qaction_is_enabled(void* action); +VQT6_API void vqt6_qaction_trigger(void* action); + +// ============================================================ +// QStatusBar / QToolBar +// ============================================================ +VQT6_API void* vqt6_qstatusbar_create(void); +VQT6_API void* vqt6_qstatusbar_create_with_parent(void* parent); +VQT6_API void vqt6_qstatusbar_show_message(void* sb, void* message, int timeout_ms); +VQT6_API void vqt6_qstatusbar_clear_message(void* sb); +VQT6_API void* vqt6_qstatusbar_current_message(void* sb); +VQT6_API void vqt6_qstatusbar_add_widget(void* sb, void* w, int stretch); +VQT6_API void vqt6_qstatusbar_add_permanent_widget(void* sb, void* w, int stretch); + +VQT6_API void* vqt6_qtoolbar_create(void); +VQT6_API void* vqt6_qtoolbar_create_with_parent(void* parent); +VQT6_API void* vqt6_qtoolbar_add_widget(void* tb, void* w); +VQT6_API void vqt6_qtoolbar_add_action(void* tb, void* action); +VQT6_API void vqt6_qtoolbar_add_separator(void* tb); +VQT6_API void vqt6_qtoolbar_set_icon_size(void* tb, int w, int h); +VQT6_API void vqt6_qtoolbar_set_orientation(void* tb, int orientation); +VQT6_API int vqt6_qtoolbar_orientation(void* tb); + +// ============================================================ +// QMessageBox +// ============================================================ +VQT6_API int vqt6_qmessagebox_information(void* parent, void* title, void* text, int buttons); +VQT6_API int vqt6_qmessagebox_warning(void* parent, void* title, void* text, int buttons); +VQT6_API int vqt6_qmessagebox_critical(void* parent, void* title, void* text, int buttons); +VQT6_API int vqt6_qmessagebox_question(void* parent, void* title, void* text, int buttons); +VQT6_API void vqt6_qmessagebox_about(void* parent, void* title, void* text); +VQT6_API void vqt6_qmessagebox_about_qt(void* parent); + +// ============================================================ +// QFileDialog +// ============================================================ +VQT6_API void* vqt6_qfiledialog_get_open_file_name(void* parent, void* caption, void* dir, void* filter); +VQT6_API void* vqt6_qfiledialog_get_save_file_name(void* parent, void* caption, void* dir, void* filter); +VQT6_API void* vqt6_qfiledialog_get_existing_directory(void* parent, void* caption, void* dir); +VQT6_API void* vqt6_qfiledialog_get_open_file_names(void* parent, void* caption, void* dir, void* filter); + +#ifdef __cplusplus +} +#endif + +#endif // VQT6_BRIDGE_WIDGETS_H diff --git a/includes/vqt6/_qtcore.py b/includes/vqt6/_qtcore.py new file mode 100644 index 0000000..ddb7035 --- /dev/null +++ b/includes/vqt6/_qtcore.py @@ -0,0 +1,157 @@ +import t, c +from stdint import * +from vqt6._types import * + +# ============================================================ +# vqt6/_qtcore.py — QtCore 的 t.State FFI 声明 +# +# 所有函数都是 C 桥接层 (libvqt6_bridge.a) 的 extern "C" 函数 +# 命名规范: vqt6__ +# ============================================================ + +# ============================================================ +# QString — UTF-16 字符串 +# ============================================================ +# 创建 QString(从 UTF-8 C 字符串) +def vqt6_qstring_create(utf8: t.CChar | t.CPtr) -> QtStringPtr | t.State: pass + +# 获取 QString 的 UTF-8 表示(写入 buf,返回实际长度,不含 \0) +# buf 需足够大(建议 4 * qstring.length() + 1) +def vqt6_qstring_to_utf8(qstr: QtStringPtr, buf: t.CChar | t.CPtr, buf_size: t.CSizeT) -> t.CSizeT | t.State: pass + +# 释放 QString +def vqt6_qstring_free(qstr: QtStringPtr) -> t.State: pass + +# 获取 QString 字符数 +def vqt6_qstring_length(qstr: QtStringPtr) -> t.CInt | t.State: pass + +# QString 是否为空 +def vqt6_qstring_is_empty(qstr: QtStringPtr) -> t.CInt | t.State: pass + +# QString 比较 +def vqt6_qstring_equals(qstr: QtStringPtr, other: QtStringPtr) -> t.CInt | t.State: pass + +# QString 拼接(返回新 QString) +def vqt6_qstring_append(qstr: QtStringPtr, other: QtStringPtr) -> QtStringPtr | t.State: pass + + +# ============================================================ +# QByteArray — 字节数组 +# ============================================================ +def vqt6_qbytearray_create(data: t.CVoid | t.CPtr, size: t.CSizeT) -> QtByteArrayPtr | t.State: pass +def vqt6_qbytearray_data(qba: QtByteArrayPtr, out_size: t.CSizeT | t.CPtr) -> t.CVoid | t.CPtr | t.State: pass +def vqt6_qbytearray_size(qba: QtByteArrayPtr) -> t.CSizeT | t.State: pass +def vqt6_qbytearray_free(qba: QtByteArrayPtr) -> t.State: pass + + +# ============================================================ +# QObject — 所有 Qt 对象的基类 +# ============================================================ +# 注意: Qt 对象的内存由 C++ 管理,Viper 端不应直接 free +def vqt6_qobject_delete(obj: QtObjectPtr) -> t.State: pass +def vqt6_qobject_delete_later(obj: QtObjectPtr) -> t.State: pass +def vqt6_qobject_set_object_name(obj: QtObjectPtr, name: QtStringPtr) -> t.State: pass +def vqt6_qobject_object_name(obj: QtObjectPtr) -> QtStringPtr | t.State: pass +def vqt6_qobject_set_parent(child: QtObjectPtr, parent: QtObjectPtr) -> t.State: pass +def vqt6_qobject_parent(obj: QtObjectPtr) -> QtObjectPtr | t.State: pass + +# 信号/槽连接 (简化版: 函数指针形式) +# typedef void (*vqt6_callback_t)(void* user_data); +# vqt6_qobject_connect_typed(sender, signal_id, receiver, slot_id, type) 由 C++ 桥接层处理 +# 由于函数指针在 C ABI 中复杂,我们采用字符串 signal/slot 名 + 全局回调注册表 +def vqt6_qobject_connect(sender: QtObjectPtr, signal_name: t.CChar | t.CPtr, + receiver: QtObjectPtr, slot_name: t.CChar | t.CPtr) -> t.CInt | t.State: pass + +def vqt6_qobject_disconnect(sender: QtObjectPtr, signal_name: t.CChar | t.CPtr, + receiver: QtObjectPtr, slot_name: t.CChar | t.CPtr) -> t.CInt | t.State: pass + +# 事件过滤器 +def vqt6_qobject_install_event_filter(watched: QtObjectPtr, filter: QtObjectPtr) -> t.State: pass +def vqt6_qobject_remove_event_filter(watched: QtObjectPtr, filter: QtObjectPtr) -> t.State: pass + + +# ============================================================ +# QCoreApplication — 事件循环基类 +# ============================================================ +def vqt6_qcoreapp_create(app_name: t.CChar | t.CPtr) -> QtCoreAppPtr | t.State: pass +def vqt6_qcoreapp_instance() -> QtCoreAppPtr | t.State: pass +def vqt6_qcoreapp_exec(app: QtCoreAppPtr) -> t.CInt | t.State: pass +def vqt6_qcoreapp_quit(app: QtCoreAppPtr, exit_code: t.CInt) -> t.State: pass +def vqt6_qcoreapp_exit(app: QtCoreAppPtr, exit_code: t.CInt) -> t.State: pass +def vqt6_qcoreapp_process_events(app: QtCoreAppPtr, flags: t.CInt) -> t.State: pass +def vqt6_qcoreapp_post_event(receiver: QtObjectPtr, event: QtEventPtr) -> t.State: pass +def vqt6_qcoreapp_send_event(receiver: QtObjectPtr, event: QtEventPtr) -> t.CInt | t.State: pass +def vqt6_qcoreapp_organization_name(app: QtCoreAppPtr) -> QtStringPtr | t.State: pass +def vqt6_qcoreapp_set_organization_name(app: QtCoreAppPtr, name: QtStringPtr) -> t.State: pass +def vqt6_qcoreapp_application_name(app: QtCoreAppPtr) -> QtStringPtr | t.State: pass +def vqt6_qcoreapp_set_application_name(app: QtCoreAppPtr, name: QtStringPtr) -> t.State: pass + + +# ============================================================ +# QTimer — 定时器 +# ============================================================ +def vqt6_qtimer_create() -> QtTimerPtr | t.State: pass +def vqt6_qtimer_create_with_parent(parent: QtObjectPtr) -> QtTimerPtr | t.State: pass +def vqt6_qtimer_start(timer: QtTimerPtr, interval_ms: t.CInt) -> t.State: pass +def vqt6_qtimer_stop(timer: QtTimerPtr) -> t.State: pass +def vqt6_qtimer_set_interval(timer: QtTimerPtr, interval_ms: t.CInt) -> t.State: pass +def vqt6_qtimer_interval(timer: QtTimerPtr) -> t.CInt | t.State: pass +def vqt6_qtimer_is_active(timer: QtTimerPtr) -> t.CInt | t.State: pass +def vqt6_qtimer_set_single_shot(timer: QtTimerPtr, single_shot: t.CInt) -> t.State: pass +def vqt6_qtimer_is_single_shot(timer: QtTimerPtr) -> t.CInt | t.State: pass + + +# ============================================================ +# QVariant — 通用数据容器 +# ============================================================ +def vqt6_qvariant_create_int(value: t.CInt) -> QtVariantPtr | t.State: pass +def vqt6_qvariant_create_double(value: t.CDouble) -> QtVariantPtr | t.State: pass +def vqt6_qvariant_create_bool(value: t.CInt) -> QtVariantPtr | t.State: pass +def vqt6_qvariant_create_string(s: QtStringPtr) -> QtVariantPtr | t.State: pass +def vqt6_qvariant_to_int(v: QtVariantPtr, ok: t.CInt | t.CPtr) -> t.CInt | t.State: pass +def vqt6_qvariant_to_double(v: QtVariantPtr, ok: t.CInt | t.CPtr) -> t.CDouble | t.State: pass +def vqt6_qvariant_to_bool(v: QtVariantPtr, ok: t.CInt | t.CPtr) -> t.CInt | t.State: pass +def vqt6_qvariant_to_string(v: QtVariantPtr) -> QtStringPtr | t.State: pass +def vqt6_qvariant_type_id(v: QtVariantPtr) -> t.CInt | t.State: pass +def vqt6_qvariant_is_valid(v: QtVariantPtr) -> t.CInt | t.State: pass +def vqt6_qvariant_free(v: QtVariantPtr) -> t.State: pass + + +# ============================================================ +# QEvent — 事件基类 +# ============================================================ +def vqt6_qevent_type(event: QtEventPtr) -> t.CInt | t.State: pass +def vqt6_qevent_accept(event: QtEventPtr) -> t.State: pass +def vqt6_qevent_ignore(event: QtEventPtr) -> t.State: pass +def vqt6_qevent_is_accepted(event: QtEventPtr) -> t.CInt | t.State: pass + + +# ============================================================ +# 字符串列表 (QStringList / QList) +# ============================================================ +def vqt6_qstringlist_create() -> QtStringListPtr | t.State: pass +def vqt6_qstringlist_append(list: QtStringListPtr, str: QtStringPtr) -> t.State: pass +def vqt6_qstringlist_size(list: QtStringListPtr) -> t.CInt | t.State: pass +def vqt6_qstringlist_at(list: QtStringListPtr, index: t.CInt) -> QtStringPtr | t.State: pass +def vqt6_qstringlist_free(list: QtStringListPtr) -> t.State: pass + + +# ============================================================ +# 字节数组列表 (QList) +# ============================================================ +def vqt6_qbytearraylist_create() -> QtByteArrayListPtr | t.State: pass +def vqt6_qbytearraylist_append(list: QtByteArrayListPtr, qba: QtByteArrayPtr) -> t.State: pass +def vqt6_qbytearraylist_size(list: QtByteArrayListPtr) -> t.CInt | t.State: pass +def vqt6_qbytearraylist_at(list: QtByteArrayListPtr, index: t.CInt) -> QtByteArrayPtr | t.State: pass +def vqt6_qbytearraylist_free(list: QtByteArrayListPtr) -> t.State: pass + + +# ============================================================ +# 全局回调注册表 +# ============================================================ +# 用于从 C++ 端回调 Viper 代码 +# Viper 注册一个 slot 函数(用整数 ID 标识),C++ 在触发信号时通过 ID 查找 +# typedef void (*vqt6_slot_callback_t)(int slot_id, void* user_data); +def vqt6_register_slot(slot_id: t.CInt, user_data: t.CVoid | t.CPtr) -> t.State: pass +def vqt6_unregister_slot(slot_id: t.CInt) -> t.State: pass +def vqt6_trigger_slot(slot_id: t.CInt) -> t.State: pass # 测试用 diff --git a/includes/vqt6/_qtgui.py b/includes/vqt6/_qtgui.py new file mode 100644 index 0000000..80f0094 --- /dev/null +++ b/includes/vqt6/_qtgui.py @@ -0,0 +1,237 @@ +import t, c +from stdint import * +from vqt6._types import * + +# ============================================================ +# vqt6/_qtgui.py — QtGui 的 t.State FFI 声明 +# ============================================================ + +# ============================================================ +# QColor — 颜色 +# ============================================================ +def vqt6_qcolor_create_rgb(r: t.CInt, g: t.CInt, b: t.CInt) -> QtColorPtr | t.State: pass +def vqt6_qcolor_create_rgba(r: t.CInt, g: t.CInt, b: t.CInt, a: t.CInt) -> QtColorPtr | t.State: pass +def vqt6_qcolor_create_name(name: QtStringPtr) -> QtColorPtr | t.State: pass +def vqt6_qcolor_create_hex(hex_str: QtStringPtr) -> QtColorPtr | t.State: pass +def vqt6_qcolor_red(c: QtColorPtr) -> t.CInt | t.State: pass +def vqt6_qcolor_green(c: QtColorPtr) -> t.CInt | t.State: pass +def vqt6_qcolor_blue(c: QtColorPtr) -> t.CInt | t.State: pass +def vqt6_qcolor_alpha(c: QtColorPtr) -> t.CInt | t.State: pass +def vqt6_qcolor_set_red(c: QtColorPtr, r: t.CInt) -> t.State: pass +def vqt6_qcolor_set_green(c: QtColorPtr, g: t.CInt) -> t.State: pass +def vqt6_qcolor_set_blue(c: QtColorPtr, b: t.CInt) -> t.State: pass +def vqt6_qcolor_set_alpha(c: QtColorPtr, a: t.CInt) -> t.State: pass +def vqt6_qcolor_set_rgb(c: QtColorPtr, r: t.CInt, g: t.CInt, b: t.CInt) -> t.State: pass +def vqt6_qcolor_set_rgba(c: QtColorPtr, r: t.CInt, g: t.CInt, b: t.CInt, a: t.CInt) -> t.State: pass +def vqt6_qcolor_name(c: QtColorPtr) -> QtStringPtr | t.State: pass +def vqt6_qcolor_is_valid(c: QtColorPtr) -> t.CInt | t.State: pass +def vqt6_qcolor_free(c: QtColorPtr) -> t.State: pass + + +# ============================================================ +# QFont — 字体 +# ============================================================ +def vqt6_qfont_create() -> QtFontPtr | t.State: pass +def vqt6_qfont_create_with_family(family: QtStringPtr) -> QtFontPtr | t.State: pass +def vqt6_qfont_create_with_family_size(family: QtStringPtr, point_size: t.CInt) -> QtFontPtr | t.State: pass +def vqt6_qfont_set_family(font: QtFontPtr, family: QtStringPtr) -> t.State: pass +def vqt6_qfont_family(font: QtFontPtr) -> QtStringPtr | t.State: pass +def vqt6_qfont_set_point_size(font: QtFontPtr, point_size: t.CInt) -> t.State: pass +def vqt6_qfont_point_size(font: QtFontPtr) -> t.CInt | t.State: pass +def vqt6_qfont_set_pixel_size(font: QtFontPtr, pixel_size: t.CInt) -> t.State: pass +def vqt6_qfont_pixel_size(font: QtFontPtr) -> t.CInt | t.State: pass +def vqt6_qfont_set_bold(font: QtFontPtr, bold: t.CInt) -> t.State: pass +def vqt6_qfont_bold(font: QtFontPtr) -> t.CInt | t.State: pass +def vqt6_qfont_set_italic(font: QtFontPtr, italic: t.CInt) -> t.State: pass +def vqt6_qfont_italic(font: QtFontPtr) -> t.CInt | t.State: pass +def vqt6_qfont_set_underline(font: QtFontPtr, underline: t.CInt) -> t.State: pass +def vqt6_qfont_underline(font: QtFontPtr) -> t.CInt | t.State: pass +def vqt6_qfont_set_strike_out(font: QtFontPtr, strike_out: t.CInt) -> t.State: pass +def vqt6_qfont_strike_out(font: QtFontPtr) -> t.CInt | t.State: pass +def vqt6_qfont_set_weight(font: QtFontPtr, weight: t.CInt) -> t.State: pass +def vqt6_qfont_weight(font: QtFontPtr) -> t.CInt | t.State: pass +def vqt6_qfont_free(font: QtFontPtr) -> t.State: pass + + +# ============================================================ +# QFontMetrics — 字体度量 +# ============================================================ +def vqt6_qfontmetrics_create(font: QtFontPtr) -> QtFontMetricsPtr | t.State: pass +def vqt6_qfontmetrics_width(fm: QtFontMetricsPtr, text: QtStringPtr) -> t.CInt | t.State: pass +def vqt6_qfontmetrics_height(fm: QtFontMetricsPtr) -> t.CInt | t.State: pass +def vqt6_qfontmetrics_ascent(fm: QtFontMetricsPtr) -> t.CInt | t.State: pass +def vqt6_qfontmetrics_descent(fm: QtFontMetricsPtr) -> t.CInt | t.State: pass +def vqt6_qfontmetrics_free(fm: QtFontMetricsPtr) -> t.State: pass + + +# ============================================================ +# QPixmap — 像素图 +# ============================================================ +def vqt6_qpixmap_create() -> QtPixmapPtr | t.State: pass +def vqt6_qpixmap_create_with_size(w: t.CInt, h: t.CInt) -> QtPixmapPtr | t.State: pass +def vqt6_qpixmap_load(pm: QtPixmapPtr, file_name: QtStringPtr) -> t.CInt | t.State: pass +def vqt6_qpixmap_load_from_data(pm: QtPixmapPtr, data: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt | t.State: pass +def vqt6_qpixmap_save(pm: QtPixmapPtr, file_name: QtStringPtr) -> t.CInt | t.State: pass +def vqt6_qpixmap_width(pm: QtPixmapPtr) -> t.CInt | t.State: pass +def vqt6_qpixmap_height(pm: QtPixmapPtr) -> t.CInt | t.State: pass +def vqt6_qpixmap_is_null(pm: QtPixmapPtr) -> t.CInt | t.State: pass +def vqt6_qpixmap_scaled(pm: QtPixmapPtr, w: t.CInt, h: t.CInt) -> QtPixmapPtr | t.State: pass +def vqt6_qpixmap_fill(pm: QtPixmapPtr, color: QtColorPtr) -> t.State: pass +def vqt6_qpixmap_free(pm: QtPixmapPtr) -> t.State: pass + + +# ============================================================ +# QImage — 图像 +# ============================================================ +def vqt6_qimage_create() -> QtImagePtr | t.State: pass +def vqt6_qimage_create_with_size(w: t.CInt, h: t.CInt, format: t.CInt) -> QtImagePtr | t.State: pass +def vqt6_qimage_load(img: QtImagePtr, file_name: QtStringPtr) -> t.CInt | t.State: pass +def vqt6_qimage_save(img: QtImagePtr, file_name: QtStringPtr) -> t.CInt | t.State: pass +def vqt6_qimage_width(img: QtImagePtr) -> t.CInt | t.State: pass +def vqt6_qimage_height(img: QtImagePtr) -> t.CInt | t.State: pass +def vqt6_qimage_format(img: QtImagePtr) -> t.CInt | t.State: pass +def vqt6_qimage_is_null(img: QtImagePtr) -> t.CInt | t.State: pass +def vqt6_qimage_fill(img: QtImagePtr, color: QtColorPtr) -> t.State: pass +def vqt6_qimage_scaled(img: QtImagePtr, w: t.CInt, h: t.CInt) -> QtImagePtr | t.State: pass +def vqt6_qimage_free(img: QtImagePtr) -> t.State: pass + + +# ============================================================ +# QPainter — 绘画器 +# ============================================================ +def vqt6_qpainter_create() -> QtPainterPtr | t.State: pass +def vqt6_qpainter_begin(p: QtPainterPtr, device: QtPixmapPtr) -> t.CInt | t.State: pass +def vqt6_qpainter_end(p: QtPainterPtr) -> t.CInt | t.State: pass +def vqt6_qpainter_is_active(p: QtPainterPtr) -> t.CInt | t.State: pass +def vqt6_qpainter_set_pen(p: QtPainterPtr, pen: QtPenPtr) -> t.State: pass +def vqt6_qpainter_set_brush(p: QtPainterPtr, brush: QtBrushPtr) -> t.State: pass +def vqt6_qpainter_set_font(p: QtPainterPtr, font: QtFontPtr) -> t.State: pass +def vqt6_qpainter_pen(p: QtPainterPtr) -> QtPenPtr | t.State: pass +def vqt6_qpainter_brush(p: QtPainterPtr) -> QtBrushPtr | t.State: pass +def vqt6_qpainter_font(p: QtPainterPtr) -> QtFontPtr | t.State: pass +def vqt6_qpainter_set_opacity(p: QtPainterPtr, opacity: t.CDouble) -> t.State: pass +def vqt6_qpainter_opacity(p: QtPainterPtr) -> t.CDouble | t.State: pass + +# 绘图原语 +def vqt6_qpainter_draw_line(p: QtPainterPtr, x1: t.CInt, y1: t.CInt, x2: t.CInt, y2: t.CInt) -> t.State: pass +def vqt6_qpainter_draw_rect(p: QtPainterPtr, x: t.CInt, y: t.CInt, w: t.CInt, h: t.CInt) -> t.State: pass +def vqt6_qpainter_fill_rect(p: QtPainterPtr, x: t.CInt, y: t.CInt, w: t.CInt, h: t.CInt, color: QtColorPtr) -> t.State: pass +def vqt6_qpainter_draw_ellipse(p: QtPainterPtr, x: t.CInt, y: t.CInt, w: t.CInt, h: t.CInt) -> t.State: pass +def vqt6_qpainter_draw_arc(p: QtPainterPtr, x: t.CInt, y: t.CInt, w: t.CInt, h: t.CInt, start_angle: t.CInt, span_angle: t.CInt) -> t.State: pass +def vqt6_qpainter_draw_chord(p: QtPainterPtr, x: t.CInt, y: t.CInt, w: t.CInt, h: t.CInt, start_angle: t.CInt, span_angle: t.CInt) -> t.State: pass +def vqt6_qpainter_draw_pie(p: QtPainterPtr, x: t.CInt, y: t.CInt, w: t.CInt, h: t.CInt, start_angle: t.CInt, span_angle: t.CInt) -> t.State: pass +def vqt6_qpainter_draw_polygon(p: QtPainterPtr, points: t.CInt | t.CPtr, point_count: t.CInt) -> t.State: pass +def vqt6_qpainter_draw_polyline(p: QtPainterPtr, points: t.CInt | t.CPtr, point_count: t.CInt) -> t.State: pass +def vqt6_qpainter_draw_point(p: QtPainterPtr, x: t.CInt, y: t.CInt) -> t.State: pass +def vqt6_qpainter_draw_points(p: QtPainterPtr, points: t.CInt | t.CPtr, point_count: t.CInt) -> t.State: pass +def vqt6_qpainter_draw_text(p: QtPainterPtr, x: t.CInt, y: t.CInt, text: QtStringPtr) -> t.State: pass +def vqt6_qpainter_draw_text_in_rect(p: QtPainterPtr, x: t.CInt, y: t.CInt, w: t.CInt, h: t.CInt, flags: t.CInt, text: QtStringPtr) -> t.State: pass +def vqt6_qpainter_draw_pixmap(p: QtPainterPtr, x: t.CInt, y: t.CInt, pixmap: QtPixmapPtr) -> t.State: pass +def vqt6_qpainter_draw_image(p: QtPainterPtr, x: t.CInt, y: t.CInt, image: QtImagePtr) -> t.State: pass +def vqt6_qpainter_draw_tiled_pixmap(p: QtPainterPtr, x: t.CInt, y: t.CInt, w: t.CInt, h: t.CInt, pixmap: QtPixmapPtr) -> t.State: pass + +# 变换 +def vqt6_qpainter_translate(p: QtPainterPtr, dx: t.CInt, dy: t.CInt) -> t.State: pass +def vqt6_qpainter_rotate(p: QtPainterPtr, angle: t.CDouble) -> t.State: pass +def vqt6_qpainter_scale(p: QtPainterPtr, sx: t.CDouble, sy: t.CDouble) -> t.State: pass +def vqt6_qpainter_reset_transform(p: QtPainterPtr) -> t.State: pass +def vqt6_qpainter_save(p: QtPainterPtr) -> t.State: pass +def vqt6_qpainter_restore(p: QtPainterPtr) -> t.State: pass + +def vqt6_qpainter_free(p: QtPainterPtr) -> t.State: pass + + +# ============================================================ +# QPen — 画笔 +# ============================================================ +def vqt6_qpen_create() -> QtPenPtr | t.State: pass +def vqt6_qpen_create_with_color(color: QtColorPtr) -> QtPenPtr | t.State: pass +def vqt6_qpen_create_with_color_width(color: QtColorPtr, width: t.CInt) -> QtPenPtr | t.State: pass +def vqt6_qpen_set_color(pen: QtPenPtr, color: QtColorPtr) -> t.State: pass +def vqt6_qpen_color(pen: QtPenPtr) -> QtColorPtr | t.State: pass +def vqt6_qpen_set_width(pen: QtPenPtr, width: t.CInt) -> t.State: pass +def vqt6_qpen_width(pen: QtPenPtr) -> t.CInt | t.State: pass +def vqt6_qpen_set_style(pen: QtPenPtr, style: t.CInt) -> t.State: pass +def vqt6_qpen_style(pen: QtPenPtr) -> t.CInt | t.State: pass +def vqt6_qpen_free(pen: QtPenPtr) -> t.State: pass + + +# ============================================================ +# QBrush — 画刷 +# ============================================================ +def vqt6_qbrush_create() -> QtBrushPtr | t.State: pass +def vqt6_qbrush_create_with_color(color: QtColorPtr) -> QtBrushPtr | t.State: pass +def vqt6_qbrush_create_with_style(style: t.CInt) -> QtBrushPtr | t.State: pass +def vqt6_qbrush_set_color(brush: QtBrushPtr, color: QtColorPtr) -> t.State: pass +def vqt6_qbrush_color(brush: QtBrushPtr) -> QtColorPtr | t.State: pass +def vqt6_qbrush_set_style(brush: QtBrushPtr, style: t.CInt) -> t.State: pass +def vqt6_qbrush_style(brush: QtBrushPtr) -> t.CInt | t.State: pass +def vqt6_qbrush_free(brush: QtBrushPtr) -> t.State: pass + + +# ============================================================ +# QIcon — 图标 +# ============================================================ +def vqt6_qicon_create() -> QtIconPtr | t.State: pass +def vqt6_qicon_create_with_file(file_name: QtStringPtr) -> QtIconPtr | t.State: pass +def vqt6_qicon_add_file(icon: QtIconPtr, file_name: QtStringPtr) -> t.State: pass +def vqt6_qicon_add_pixmap(icon: QtIconPtr, pixmap: QtPixmapPtr) -> t.State: pass +def vqt6_qicon_is_null(icon: QtIconPtr) -> t.CInt | t.State: pass +def vqt6_qicon_pixmap(icon: QtIconPtr, w: t.CInt, h: t.CInt) -> QtPixmapPtr | t.State: pass +def vqt6_qicon_free(icon: QtIconPtr) -> t.State: pass + + +# ============================================================ +# QCursor — 鼠标光标 +# ============================================================ +def vqt6_qcursor_create() -> QtCursorPtr | t.State: pass +def vqt6_qcursor_create_with_shape(shape: t.CInt) -> QtCursorPtr | t.State: pass +def vqt6_qcursor_pos(x: t.CInt | t.CPtr, y: t.CInt | t.CPtr) -> t.State: pass +def vqt6_qcursor_set_pos(x: t.CInt, y: t.CInt) -> t.State: pass +def vqt6_qcursor_set_shape(cursor: QtCursorPtr, shape: t.CInt) -> t.State: pass +def vqt6_qcursor_shape(cursor: QtCursorPtr) -> t.CInt | t.State: pass +def vqt6_qcursor_free(cursor: QtCursorPtr) -> t.State: pass + + +# ============================================================ +# QKeyEvent — 键盘事件 +# ============================================================ +def vqt6_qkeyevent_create(type: t.CInt, key: t.CInt, modifiers: t.CInt, text: QtStringPtr) -> QtKeyEventPtr | t.State: pass +def vqt6_qkeyevent_key(event: QtKeyEventPtr) -> t.CInt | t.State: pass +def vqt6_qkeyevent_text(event: QtKeyEventPtr) -> QtStringPtr | t.State: pass +def vqt6_qkeyevent_modifiers(event: QtKeyEventPtr) -> t.CInt | t.State: pass +def vqt6_qkeyevent_is_auto_repeat(event: QtKeyEventPtr) -> t.CInt | t.State: pass +def vqt6_qkeyevent_free(event: QtKeyEventPtr) -> t.State: pass + + +# ============================================================ +# QMouseEvent — 鼠标事件 +# ============================================================ +def vqt6_qmouseevent_create(type: t.CInt, local_pos: QtObjectPtr, button: t.CInt, buttons: t.CInt, modifiers: t.CInt) -> QtMouseEventPtr | t.State: pass +def vqt6_qmouseevent_button(event: QtMouseEventPtr) -> t.CInt | t.State: pass +def vqt6_qmouseevent_buttons(event: QtMouseEventPtr) -> t.CInt | t.State: pass +def vqt6_qmouseevent_x(event: QtMouseEventPtr) -> t.CInt | t.State: pass +def vqt6_qmouseevent_y(event: QtMouseEventPtr) -> t.CInt | t.State: pass +def vqt6_qmouseevent_global_x(event: QtMouseEventPtr) -> t.CInt | t.State: pass +def vqt6_qmouseevent_global_y(event: QtMouseEventPtr) -> t.CInt | t.State: pass +def vqt6_qmouseevent_modifiers(event: QtMouseEventPtr) -> t.CInt | t.State: pass +def vqt6_qmouseevent_free(event: QtMouseEventPtr) -> t.State: pass + + +# ============================================================ +# QResizeEvent / QPaintEvent / QCloseEvent +# ============================================================ +def vqt6_qresizeevent_create(width: t.CInt, height: t.CInt, old_width: t.CInt, old_height: t.CInt) -> QtResizeEventPtr | t.State: pass +def vqt6_qresizeevent_size(event: QtResizeEventPtr, w: t.CInt | t.CPtr, h: t.CInt | t.CPtr) -> t.State: pass +def vqt6_qresizeevent_old_size(event: QtResizeEventPtr, w: t.CInt | t.CPtr, h: t.CInt | t.CPtr) -> t.State: pass +def vqt6_qresizeevent_free(event: QtResizeEventPtr) -> t.State: pass + +def vqt6_qpaintevent_create(rect_x: t.CInt, rect_y: t.CInt, rect_w: t.CInt, rect_h: t.CInt) -> QtPaintEventPtr | t.State: pass +def vqt6_qpaintevent_rect(event: QtPaintEventPtr, x: t.CInt | t.CPtr, y: t.CInt | t.CPtr, w: t.CInt | t.CPtr, h: t.CInt | t.CPtr) -> t.State: pass +def vqt6_qpaintevent_free(event: QtPaintEventPtr) -> t.State: pass + +def vqt6_qcloseevent_create() -> QtCloseEventPtr | t.State: pass +def vqt6_qcloseevent_is_accepted(event: QtCloseEventPtr) -> t.CInt | t.State: pass +def vqt6_qcloseevent_accept(event: QtCloseEventPtr) -> t.State: pass +def vqt6_qcloseevent_ignore(event: QtCloseEventPtr) -> t.State: pass +def vqt6_qcloseevent_free(event: QtCloseEventPtr) -> t.State: pass diff --git a/includes/vqt6/_qtnetwork.py b/includes/vqt6/_qtnetwork.py new file mode 100644 index 0000000..6859d8b --- /dev/null +++ b/includes/vqt6/_qtnetwork.py @@ -0,0 +1,184 @@ +import t, c +from stdint import * +from vqt6._types import * + +# ============================================================ +# vqt6/_qtnetwork.py — QtNetwork 的 t.State FFI 声明 +# ============================================================ + +# ============================================================ +# QHostAddress — IP 地址 +# ============================================================ +def vqt6_qhostaddress_create() -> QtHostAddressPtr | t.State: pass +def vqt6_qhostaddress_create_with_ipv4(ipv4: t.CUInt32T) -> QtHostAddressPtr | t.State: pass +def vqt6_qhostaddress_create_with_string(address: QtStringPtr) -> QtHostAddressPtr | t.State: pass +def vqt6_qhostaddress_create_with_local_host() -> QtHostAddressPtr | t.State: pass +def vqt6_qhostaddress_create_with_local_ipv4() -> QtHostAddressPtr | t.State: pass +def vqt6_qhostaddress_create_with_broadcast() -> QtHostAddressPtr | t.State: pass +def vqt6_qhostaddress_create_with_any_ipv4() -> QtHostAddressPtr | t.State: pass +def vqt6_qhostaddress_to_string(addr: QtHostAddressPtr) -> QtStringPtr | t.State: pass +def vqt6_qhostaddress_to_ipv4(addr: QtHostAddressPtr) -> t.CUInt32T | t.State: pass +def vqt6_qhostaddress_is_null(addr: QtHostAddressPtr) -> t.CInt | t.State: pass +def vqt6_qhostaddress_is_loopback(addr: QtHostAddressPtr) -> t.CInt | t.State: pass +def vqt6_qhostaddress_is_broadcast(addr: QtHostAddressPtr) -> t.CInt | t.State: pass +def vqt6_qhostaddress_protocol(addr: QtHostAddressPtr) -> t.CInt | t.State: pass +def vqt6_qhostaddress_free(addr: QtHostAddressPtr) -> t.State: pass + + +# ============================================================ +# QAbstractSocket — TCP/UDP 套接字基类 +# ============================================================ +# 套接字状态 +QT_SOCKET_UNCONNECTED_STATE: t.CDefine = 0 +QT_SOCKET_HOST_LOOKUP_STATE: t.CDefine = 1 +QT_SOCKET_CONNECTING_STATE: t.CDefine = 2 +QT_SOCKET_CONNECTED_STATE: t.CDefine = 3 +QT_SOCKET_BOUND_STATE: t.CDefine = 4 +QT_SOCKET_LISTENING_STATE: t.CDefine = 5 +QT_SOCKET_CLOSING_STATE: t.CDefine = 6 + +# 套接字类型 +QT_SOCKET_TCP: t.CDefine = 0 +QT_SOCKET_UDP: t.CDefine = 1 + +# 套接字错误 +QT_SOCKET_NO_ERROR: t.CDefine = 0 + +# 通用方法 +def vqt6_qabstractsocket_state(socket: QtAbstractSocketPtr) -> t.CInt | t.State: pass +def vqt6_qabstractsocket_error(socket: QtAbstractSocketPtr) -> t.CInt | t.State: pass +def vqt6_qabstractsocket_error_string(socket: QtAbstractSocketPtr) -> QtStringPtr | t.State: pass +def vqt6_qabstractsocket_connect_to_host(socket: QtAbstractSocketPtr, host_name: QtStringPtr, port: t.CUInt16T) -> t.State: pass +def vqt6_qabstractsocket_connect_to_host_with_addr(socket: QtAbstractSocketPtr, address: QtHostAddressPtr, port: t.CUInt16T) -> t.State: pass +def vqt6_qabstractsocket_disconnect_from_host(socket: QtAbstractSocketPtr) -> t.State: pass +def vqt6_qabstractsocket_wait_for_connected(socket: QtAbstractSocketPtr, timeout_ms: t.CInt) -> t.CInt | t.State: pass +def vqt6_qabstractsocket_wait_for_ready_read(socket: QtAbstractSocketPtr, timeout_ms: t.CInt) -> t.CInt | t.State: pass +def vqt6_qabstractsocket_wait_for_bytes_written(socket: QtAbstractSocketPtr, timeout_ms: t.CInt) -> t.CInt | t.State: pass +def vqt6_qabstractsocket_wait_for_disconnected(socket: QtAbstractSocketPtr, timeout_ms: t.CInt) -> t.CInt | t.State: pass +def vqt6_qabstractsocket_is_valid(socket: QtAbstractSocketPtr) -> t.CInt | t.State: pass +def vqt6_qabstractsocket_is_open(socket: QtAbstractSocketPtr) -> t.CInt | t.State: pass +def vqt6_qabstractsocket_flush(socket: QtAbstractSocketPtr) -> t.CInt | t.State: pass +def vqt6_qabstractsocket_close(socket: QtAbstractSocketPtr) -> t.State: pass +def vqt6_qabstractsocket_abort(socket: QtAbstractSocketPtr) -> t.State: pass +def vqt6_qabstractsocket_read(socket: QtAbstractSocketPtr, buf: t.CVoid | t.CPtr, max_size: t.CSizeT) -> t.CSizeT | t.State: pass +def vqt6_qabstractsocket_read_all(socket: QtAbstractSocketPtr, out_size: t.CSizeT | t.CPtr) -> t.CVoid | t.CPtr | t.State: pass +def vqt6_qabstractsocket_write(socket: QtAbstractSocketPtr, data: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CSizeT | t.State: pass +def vqt6_qabstractsocket_bytes_available(socket: QtAbstractSocketPtr) -> t.CSizeT | t.State: pass +def vqt6_qabstractsocket_bytes_to_write(socket: QtAbstractSocketPtr) -> t.CSizeT | t.State: pass +def vqt6_qabstractsocket_peer_address(socket: QtAbstractSocketPtr) -> QtHostAddressPtr | t.State: pass +def vqt6_qabstractsocket_peer_port(socket: QtAbstractSocketPtr) -> t.CUInt16T | t.State: pass +def vqt6_qabstractsocket_local_address(socket: QtAbstractSocketPtr) -> QtHostAddressPtr | t.State: pass +def vqt6_qabstractsocket_local_port(socket: QtAbstractSocketPtr) -> t.CUInt16T | t.State: pass + + +# ============================================================ +# QTcpSocket — TCP 套接字 +# ============================================================ +def vqt6_qtcpsocket_create() -> QtTcpSocketPtr | t.State: pass +def vqt6_qtcpsocket_create_with_parent(parent: QtObjectPtr) -> QtTcpSocketPtr | t.State: pass +def vqt6_qtcpsocket_connect_to_host(socket: QtTcpSocketPtr, host_name: QtStringPtr, port: t.CUInt16T, mode: t.CInt) -> t.State: pass +def vqt6_qtcpsocket_connect_to_host_with_addr(socket: QtTcpSocketPtr, address: QtHostAddressPtr, port: t.CUInt16T, mode: t.CInt) -> t.State: pass +def vqt6_qtcpsocket_set_socket_descriptor(socket: QtTcpSocketPtr, socket_descriptor: t.CInt) -> t.CInt | t.State: pass +def vqt6_qtcpsocket_socket_descriptor(socket: QtTcpSocketPtr) -> t.CInt | t.State: pass +def vqt6_qtcpsocket_set_proxy(socket: QtTcpSocketPtr, proxy_type: t.CInt) -> t.State: pass +def vqt6_qtcpsocket_abort(socket: QtTcpSocketPtr) -> t.State: pass + + +# ============================================================ +# QUdpSocket — UDP 套接字 +# ============================================================ +def vqt6_qudpsocket_create() -> QtUdpSocketPtr | t.State: pass +def vqt6_qudpsocket_create_with_parent(parent: QtObjectPtr) -> QtUdpSocketPtr | t.State: pass +def vqt6_qudpsocket_bind(socket: QtUdpSocketPtr, port: t.CUInt16T) -> t.CInt | t.State: pass +def vqt6_qudpsocket_bind_with_addr(socket: QtUdpSocketPtr, address: QtHostAddressPtr, port: t.CUInt16T) -> t.CInt | t.State: pass +def vqt6_qudpsocket_close(socket: QtUdpSocketPtr) -> t.State: pass +def vqt6_qudpsocket_write_datagram(socket: QtUdpSocketPtr, data: t.CVoid | t.CPtr, size: t.CSizeT, host: QtHostAddressPtr, port: t.CUInt16T) -> t.CSizeT | t.State: pass +def vqt6_qudpsocket_read_datagram(socket: QtUdpSocketPtr, data: t.CVoid | t.CPtr, max_size: t.CSizeT, host: QtHostAddressPtr, port: t.CUInt16T | t.CPtr) -> t.CSizeT | t.State: pass +def vqt6_qudpsocket_has_pending_datagrams(socket: QtUdpSocketPtr) -> t.CInt | t.State: pass +def vqt6_qudpsocket_pending_datagram_size(socket: QtUdpSocketPtr) -> t.CSizeT | t.State: pass +def vqt6_qudpsocket_join_multicast_group(socket: QtUdpSocketPtr, group_address: QtHostAddressPtr) -> t.CInt | t.State: pass +def vqt6_qudpsocket_leave_multicast_group(socket: QtUdpSocketPtr, group_address: QtHostAddressPtr) -> t.CInt | t.State: pass + + +# ============================================================ +# QNetworkRequest — 网络请求 +# ============================================================ +def vqt6_qnetworkrequest_create() -> QtNetworkRequestPtr | t.State: pass +def vqt6_qnetworkrequest_create_with_url(url: QtStringPtr) -> QtNetworkRequestPtr | t.State: pass +def vqt6_qnetworkrequest_set_url(req: QtNetworkRequestPtr, url: QtStringPtr) -> t.State: pass +def vqt6_qnetworkrequest_url(req: QtNetworkRequestPtr) -> QtStringPtr | t.State: pass +def vqt6_qnetworkrequest_set_header(req: QtNetworkRequestPtr, header_type: t.CInt, value: QtVariantPtr) -> t.State: pass +def vqt6_qnetworkrequest_header(req: QtNetworkRequestPtr, header_type: t.CInt) -> QtVariantPtr | t.State: pass +def vqt6_qnetworkrequest_set_raw_header(req: QtNetworkRequestPtr, header_name: t.CChar | t.CPtr, value: t.CVoid | t.CPtr, value_size: t.CSizeT) -> t.State: pass +def vqt6_qnetworkrequest_raw_header(req: QtNetworkRequestPtr, header_name: t.CChar | t.CPtr, out_size: t.CSizeT | t.CPtr) -> t.CVoid | t.CPtr | t.State: pass +def vqt6_qnetworkrequest_set_attribute(req: QtNetworkRequestPtr, attr_type: t.CInt, value: QtVariantPtr) -> t.State: pass +def vqt6_qnetworkrequest_attribute(req: QtNetworkRequestPtr, attr_type: t.CInt) -> QtVariantPtr | t.State: pass +def vqt6_qnetworkrequest_free(req: QtNetworkRequestPtr) -> t.State: pass + + +# ============================================================ +# QNetworkAccessManager — HTTP 客户端管理器 +# ============================================================ +def vqt6_qnetworkaccessmanager_create() -> QtNetworkAccessManagerPtr | t.State: pass +def vqt6_qnetworkaccessmanager_create_with_parent(parent: QtObjectPtr) -> QtNetworkAccessManagerPtr | t.State: pass +def vqt6_qnetworkaccessmanager_get(nam: QtNetworkAccessManagerPtr, req: QtNetworkRequestPtr) -> QtNetworkReplyPtr | t.State: pass +def vqt6_qnetworkaccessmanager_post(nam: QtNetworkAccessManagerPtr, req: QtNetworkRequestPtr, data: t.CVoid | t.CPtr, size: t.CSizeT) -> QtNetworkReplyPtr | t.State: pass +def vqt6_qnetworkaccessmanager_put(nam: QtNetworkAccessManagerPtr, req: QtNetworkRequestPtr, data: t.CVoid | t.CPtr, size: t.CSizeT) -> QtNetworkReplyPtr | t.State: pass +def vqt6_qnetworkaccessmanager_delete_resource(nam: QtNetworkAccessManagerPtr, req: QtNetworkRequestPtr) -> QtNetworkReplyPtr | t.State: pass +def vqt6_qnetworkaccessmanager_head(nam: QtNetworkAccessManagerPtr, req: QtNetworkRequestPtr) -> QtNetworkReplyPtr | t.State: pass +def vqt6_qnetworkaccessmanager_set_cookie_store(nam: QtNetworkAccessManagerPtr, store: QtObjectPtr) -> t.State: pass + + +# ============================================================ +# QNetworkReply — 网络响应 +# ============================================================ +def vqt6_qnetworkreply_url(reply: QtNetworkReplyPtr) -> QtStringPtr | t.State: pass +def vqt6_qnetworkreply_request(reply: QtNetworkReplyPtr) -> QtNetworkRequestPtr | t.State: pass +def vqt6_qnetworkreply_error(reply: QtNetworkReplyPtr) -> t.CInt | t.State: pass +def vqt6_qnetworkreply_error_string(reply: QtNetworkReplyPtr) -> QtStringPtr | t.State: pass +def vqt6_qnetworkreply_is_finished(reply: QtNetworkReplyPtr) -> t.CInt | t.State: pass +def vqt6_qnetworkreply_is_running(reply: QtNetworkReplyPtr) -> t.CInt | t.State: pass +def vqt6_qnetworkreply_abort(reply: QtNetworkReplyPtr) -> t.State: pass +def vqt6_qnetworkreply_read(reply: QtNetworkReplyPtr, buf: t.CVoid | t.CPtr, max_size: t.CSizeT) -> t.CSizeT | t.State: pass +def vqt6_qnetworkreply_read_all(reply: QtNetworkReplyPtr, out_size: t.CSizeT | t.CPtr) -> t.CVoid | t.CPtr | t.State: pass +def vqt6_qnetworkreply_bytes_available(reply: QtNetworkReplyPtr) -> t.CSizeT | t.State: pass +def vqt6_qnetworkreply_header(reply: QtNetworkReplyPtr, header_type: t.CInt) -> QtVariantPtr | t.State: pass +def vqt6_qnetworkreply_raw_header(reply: QtNetworkReplyPtr, header_name: t.CChar | t.CPtr, out_size: t.CSizeT | t.CPtr) -> t.CVoid | t.CPtr | t.State: pass +def vqt6_qnetworkreply_attribute(reply: QtNetworkReplyPtr, attribute_code: t.CInt) -> QtVariantPtr | t.State: pass +def vqt6_qnetworkreply_attribute_int(reply: QtNetworkReplyPtr, attribute_code: t.CInt, default_value: t.CInt) -> t.CInt | t.State: pass +def vqt6_qnetworkreply_set_raw_header(reply: QtNetworkReplyPtr, header_name: t.CChar | t.CPtr, value: t.CVoid | t.CPtr, value_size: t.CSizeT) -> t.State: pass + + +# ============================================================ +# 套接字类型枚举 +# ============================================================ +# 套接字类型 +QT_ABSTRACT_SOCKET_TCP: t.CDefine = 0 +QT_ABSTRACT_SOCKET_UDP: t.CDefine = 1 + +# 网络层协议 +QT_NETWORK_IPV4_PROTOCOL: t.CDefine = 0 +QT_NETWORK_IPV6_PROTOCOL: t.CDefine = 1 +QT_NETWORK_ANY_IP_PROTOCOL: t.CDefine = 2 + +# 主机地址特殊情况 +QT_HOST_ADDRESS_LOCAL_HOST: t.CDefine = 0x00000000 +QT_HOST_ADDRESS_LOCAL_HOST_IPV6: t.CDefine = 0x00000001 +QT_HOST_ADDRESS_BROADCAST: t.CDefine = 0x00000002 +QT_HOST_ADDRESS_ANY_IPV4: t.CDefine = 0x00000004 +QT_HOST_ADDRESS_ANY_IPV6: t.CDefine = 0x00000005 + + +# ============================================================ +# 已知端口常量 +# ============================================================ +QT_PORT_FTP: t.CDefine = 21 +QT_PORT_SSH: t.CDefine = 22 +QT_PORT_TELNET: t.CDefine = 23 +QT_PORT_SMTP: t.CDefine = 25 +QT_PORT_DNS: t.CDefine = 53 +QT_PORT_HTTP: t.CDefine = 80 +QT_PORT_POP3: t.CDefine = 110 +QT_PORT_IMAP: t.CDefine = 143 +QT_PORT_HTTPS: t.CDefine = 443 +QT_PORT_SMB: t.CDefine = 445 diff --git a/includes/vqt6/_qtwidgets.py b/includes/vqt6/_qtwidgets.py new file mode 100644 index 0000000..025d026 --- /dev/null +++ b/includes/vqt6/_qtwidgets.py @@ -0,0 +1,478 @@ +import t, c +from stdint import * +from vqt6._types import * + +# ============================================================ +# vqt6/_qtwidgets.py — QtWidgets 的 t.State FFI 声明 +# ============================================================ + +# ============================================================ +# QApplication — GUI 应用入口 +# ============================================================ +# argc/argv 通过单独的 buffer 数组传入(Viper 中 C 数组使用指针+长度) +def vqt6_qapplication_create(argc: t.CInt, argv: t.CPtr | t.CPtr) -> QtAppPtr | t.State: pass +def vqt6_qapplication_instance() -> QtAppPtr | t.State: pass +def vqt6_qapplication_exec(app: QtAppPtr) -> t.CInt | t.State: pass +def vqt6_qapplication_quit(app: QtAppPtr) -> t.State: pass +def vqt6_qapplication_exit(app: QtAppPtr, exit_code: t.CInt) -> t.State: pass +def vqt6_qapplication_process_events(app: QtAppPtr) -> t.State: pass +def vqt6_qapplication_desktop_width(app: QtAppPtr) -> t.CInt | t.State: pass +def vqt6_qapplication_desktop_height(app: QtAppPtr) -> t.CInt | t.State: pass +def vqt6_qapplication_set_quit_on_last_window_closed(app: QtAppPtr, quit: t.CInt) -> t.State: pass +def vqt6_qapplication_quit_on_last_window_closed(app: QtAppPtr) -> t.CInt | t.State: pass + + +# ============================================================ +# QWidget — 所有窗口的基类 +# ============================================================ +def vqt6_qwidget_create() -> QtWidgetPtr | t.State: pass +def vqt6_qwidget_create_with_parent(parent: QtWidgetPtr) -> QtWidgetPtr | t.State: pass +def vqt6_qwidget_show(widget: QtWidgetPtr) -> t.State: pass +def vqt6_qwidget_hide(widget: QtWidgetPtr) -> t.State: pass +def vqt6_qwidget_close(widget: QtWidgetPtr) -> t.CInt | t.State: pass +def vqt6_qwidget_is_visible(widget: QtWidgetPtr) -> t.CInt | t.State: pass +def vqt6_qwidget_set_visible(widget: QtWidgetPtr, visible: t.CInt) -> t.State: pass + +# 几何 +def vqt6_qwidget_set_geometry(widget: QtWidgetPtr, x: t.CInt, y: t.CInt, w: t.CInt, h: t.CInt) -> t.State: pass +def vqt6_qwidget_geometry(widget: QtWidgetPtr, x: t.CInt | t.CPtr, y: t.CInt | t.CPtr, w: t.CInt | t.CPtr, h: t.CInt | t.CPtr) -> t.State: pass +def vqt6_qwidget_resize(widget: QtWidgetPtr, w: t.CInt, h: t.CInt) -> t.State: pass +def vqt6_qwidget_size(widget: QtWidgetPtr, w: t.CInt | t.CPtr, h: t.CInt | t.CPtr) -> t.State: pass +def vqt6_qwidget_move(widget: QtWidgetPtr, x: t.CInt, y: t.CInt) -> t.State: pass +def vqt6_qwidget_pos(widget: QtWidgetPtr, x: t.CInt | t.CPtr, y: t.CInt | t.CPtr) -> t.State: pass +def vqt6_qwidget_width(widget: QtWidgetPtr) -> t.CInt | t.State: pass +def vqt6_qwidget_height(widget: QtWidgetPtr) -> t.CInt | t.State: pass +def vqt6_qwidget_x(widget: QtWidgetPtr) -> t.CInt | t.State: pass +def vqt6_qwidget_y(widget: QtWidgetPtr) -> t.CInt | t.State: pass + +# 文本与标题 +def vqt6_qwidget_set_window_title(widget: QtWidgetPtr, title: QtStringPtr) -> t.State: pass +def vqt6_qwidget_window_title(widget: QtWidgetPtr) -> QtStringPtr | t.State: pass +def vqt6_qwidget_set_text(widget: QtWidgetPtr, text: QtStringPtr) -> t.State: pass +def vqt6_qwidget_text(widget: QtWidgetPtr) -> QtStringPtr | t.State: pass + +# 启用 +def vqt6_qwidget_set_enabled(widget: QtWidgetPtr, enabled: t.CInt) -> t.State: pass +def vqt6_qwidget_is_enabled(widget: QtWidgetPtr) -> t.CInt | t.State: pass + +# 父对象 +def vqt6_qwidget_set_parent(widget: QtWidgetPtr, parent: QtWidgetPtr) -> t.State: pass +def vqt6_qwidget_parent_widget(widget: QtWidgetPtr) -> QtWidgetPtr | t.State: pass + +# 焦点 +def vqt6_qwidget_set_focus(widget: QtWidgetPtr) -> t.State: pass +def vqt6_qwidget_clear_focus(widget: QtWidgetPtr) -> t.State: pass +def vqt6_qwidget_has_focus(widget: QtWidgetPtr) -> t.CInt | t.State: pass +def vqt6_qwidget_set_focus_policy(widget: QtWidgetPtr, policy: t.CInt) -> t.State: pass + +# 更新 +def vqt6_qwidget_update(widget: QtWidgetPtr) -> t.State: pass +def vqt6_qwidget_repaint(widget: QtWidgetPtr) -> t.State: pass +def vqt6_qwidget_set_update_enabled(widget: QtWidgetPtr, enabled: t.CInt) -> t.State: pass + +# 窗口标志 +def vqt6_qwidget_set_window_flags(widget: QtWidgetPtr, flags: t.CInt) -> t.State: pass +def vqt6_qwidget_window_flags(widget: QtWidgetPtr) -> t.CInt | t.State: pass + +# 鼠标光标 +def vqt6_qwidget_set_cursor(widget: QtWidgetPtr, cursor: QtCursorPtr) -> t.State: pass +def vqt6_qwidget_cursor(widget: QtWidgetPtr) -> QtCursorPtr | t.State: pass +def vqt6_qwidget_unset_cursor(widget: QtWidgetPtr) -> t.State: pass + +# 工具提示 +def vqt6_qwidget_set_tool_tip(widget: QtWidgetPtr, tip: QtStringPtr) -> t.State: pass +def vqt6_qwidget_tool_tip(widget: QtWidgetPtr) -> QtStringPtr | t.State: pass + +# 状态栏提示 +def vqt6_qwidget_set_status_tip(widget: QtWidgetPtr, tip: QtStringPtr) -> t.State: pass +def vqt6_qwidget_status_tip(widget: QtWidgetPtr) -> QtStringPtr | t.State: pass + +# 最小/最大尺寸 +def vqt6_qwidget_set_minimum_size(widget: QtWidgetPtr, w: t.CInt, h: t.CInt) -> t.State: pass +def vqt6_qwidget_set_maximum_size(widget: QtWidgetPtr, w: t.CInt, h: t.CInt) -> t.State: pass +def vqt6_qwidget_set_fixed_size(widget: QtWidgetPtr, w: t.CInt, h: t.CInt) -> t.State: pass +def vqt6_qwidget_minimum_size(widget: QtWidgetPtr, w: t.CInt | t.CPtr, h: t.CInt | t.CPtr) -> t.State: pass +def vqt6_qwidget_maximum_size(widget: QtWidgetPtr, w: t.CInt | t.CPtr, h: t.CInt | t.CPtr) -> t.State: pass + + +# ============================================================ +# QDialog — 对话框 +# ============================================================ +def vqt6_qdialog_create() -> QtDialogPtr | t.State: pass +def vqt6_qdialog_create_with_parent(parent: QtWidgetPtr) -> QtDialogPtr | t.State: pass +def vqt6_qdialog_exec(dialog: QtDialogPtr) -> t.CInt | t.State: pass +def vqt6_qdialog_done(dialog: QtDialogPtr, result: t.CInt) -> t.State: pass +def vqt6_qdialog_accept(dialog: QtDialogPtr) -> t.State: pass +def vqt6_qdialog_reject(dialog: QtDialogPtr) -> t.State: pass +def vqt6_qdialog_set_result(dialog: QtDialogPtr, result: t.CInt) -> t.State: pass +def vqt6_qdialog_result(dialog: QtDialogPtr) -> t.CInt | t.State: pass +def vqt6_qdialog_set_modal(dialog: QtDialogPtr, modal: t.CInt) -> t.State: pass +def vqt6_qdialog_is_modal(dialog: QtDialogPtr) -> t.CInt | t.State: pass + + +# ============================================================ +# QMainWindow — 主窗口 +# ============================================================ +def vqt6_qmainwindow_create() -> QtMainWindowPtr | t.State: pass +def vqt6_qmainwindow_create_with_parent(parent: QtWidgetPtr) -> QtMainWindowPtr | t.State: pass +def vqt6_qmainwindow_set_central_widget(mw: QtMainWindowPtr, widget: QtWidgetPtr) -> t.State: pass +def vqt6_qmainwindow_central_widget(mw: QtMainWindowPtr) -> QtWidgetPtr | t.State: pass +def vqt6_qmainwindow_menu_bar(mw: QtMainWindowPtr) -> QtMenuBarPtr | t.State: pass +def vqt6_qmainwindow_set_menu_bar(mw: QtMainWindowPtr, menubar: QtMenuBarPtr) -> t.State: pass +def vqt6_qmainwindow_status_bar(mw: QtMainWindowPtr) -> QtStatusBarPtr | t.State: pass +def vqt6_qmainwindow_set_status_bar(mw: QtMainWindowPtr, statusbar: QtStatusBarPtr) -> t.State: pass +def vqt6_qmainwindow_add_tool_bar(mw: QtMainWindowPtr, toolbar: QtToolBarPtr) -> t.State: pass +def vqt6_qmainwindow_add_tool_bar_break(mw: QtMainWindowPtr) -> t.State: pass + + +# ============================================================ +# QLabel — 标签 +# ============================================================ +def vqt6_qlabel_create() -> QtLabelPtr | t.State: pass +def vqt6_qlabel_create_with_text(text: QtStringPtr) -> QtLabelPtr | t.State: pass +def vqt6_qlabel_create_with_text_parent(text: QtStringPtr, parent: QtWidgetPtr) -> QtLabelPtr | t.State: pass +def vqt6_qlabel_set_text(label: QtLabelPtr, text: QtStringPtr) -> t.State: pass +def vqt6_qlabel_text(label: QtLabelPtr) -> QtStringPtr | t.State: pass +def vqt6_qlabel_set_alignment(label: QtLabelPtr, alignment: t.CInt) -> t.State: pass +def vqt6_qlabel_alignment(label: QtLabelPtr) -> t.CInt | t.State: pass +def vqt6_qlabel_set_pixmap(label: QtLabelPtr, pixmap: QtPixmapPtr) -> t.State: pass +def vqt6_qlabel_pixmap(label: QtLabelPtr) -> QtPixmapPtr | t.State: pass +def vqt6_qlabel_set_indent(label: QtLabelPtr, indent: t.CInt) -> t.State: pass +def vqt6_qlabel_set_margin(label: QtLabelPtr, margin: t.CInt) -> t.State: pass +def vqt6_qlabel_set_word_wrap(label: QtLabelPtr, wrap: t.CInt) -> t.State: pass +def vqt6_qlabel_word_wrap(label: QtLabelPtr) -> t.CInt | t.State: pass + + +# ============================================================ +# QPushButton — 按钮 +# ============================================================ +def vqt6_qpushbutton_create() -> QtPushButtonPtr | t.State: pass +def vqt6_qpushbutton_create_with_text(text: QtStringPtr) -> QtPushButtonPtr | t.State: pass +def vqt6_qpushbutton_create_with_text_parent(text: QtStringPtr, parent: QtWidgetPtr) -> QtPushButtonPtr | t.State: pass +def vqt6_qpushbutton_set_text(btn: QtPushButtonPtr, text: QtStringPtr) -> t.State: pass +def vqt6_qpushbutton_text(btn: QtPushButtonPtr) -> QtStringPtr | t.State: pass +def vqt6_qpushbutton_set_icon(btn: QtPushButtonPtr, icon: QtIconPtr) -> t.State: pass +def vqt6_qpushbutton_icon(btn: QtPushButtonPtr) -> QtIconPtr | t.State: pass +def vqt6_qpushbutton_set_default(btn: QtPushButtonPtr, is_default: t.CInt) -> t.State: pass +def vqt6_qpushbutton_is_default(btn: QtPushButtonPtr) -> t.CInt | t.State: pass +def vqt6_qpushbutton_set_flat(btn: QtPushButtonPtr, flat: t.CInt) -> t.State: pass +def vqt6_qpushbutton_is_flat(btn: QtPushButtonPtr) -> t.CInt | t.State: pass +def vqt6_qpushbutton_set_checkable(btn: QtPushButtonPtr, checkable: t.CInt) -> t.State: pass +def vqt6_qpushbutton_is_checkable(btn: QtPushButtonPtr) -> t.CInt | t.State: pass +def vqt6_qpushbutton_set_checked(btn: QtPushButtonPtr, checked: t.CInt) -> t.State: pass +def vqt6_qpushbutton_is_checked(btn: QtPushButtonPtr) -> t.CInt | t.State: pass +def vqt6_qpushbutton_click(btn: QtPushButtonPtr) -> t.State: pass + + +# ============================================================ +# QLineEdit — 单行输入框 +# ============================================================ +def vqt6_qlineedit_create() -> QtLineEditPtr | t.State: pass +def vqt6_qlineedit_create_with_text(text: QtStringPtr) -> QtLineEditPtr | t.State: pass +def vqt6_qlineedit_create_with_text_parent(text: QtStringPtr, parent: QtWidgetPtr) -> QtLineEditPtr | t.State: pass +def vqt6_qlineedit_text(le: QtLineEditPtr) -> QtStringPtr | t.State: pass +def vqt6_qlineedit_set_text(le: QtLineEditPtr, text: QtStringPtr) -> t.State: pass +def vqt6_qlineedit_placeholder_text(le: QtLineEditPtr) -> QtStringPtr | t.State: pass +def vqt6_qlineedit_set_placeholder_text(le: QtLineEditPtr, text: QtStringPtr) -> t.State: pass +def vqt6_qlineedit_set_max_length(le: QtLineEditPtr, max: t.CInt) -> t.State: pass +def vqt6_qlineedit_max_length(le: QtLineEditPtr) -> t.CInt | t.State: pass +def vqt6_qlineedit_set_read_only(le: QtLineEditPtr, ro: t.CInt) -> t.State: pass +def vqt6_qlineedit_is_read_only(le: QtLineEditPtr) -> t.CInt | t.State: pass +def vqt6_qlineedit_set_echo_mode(le: QtLineEditPtr, mode: t.CInt) -> t.State: pass +def vqt6_qlineedit_echo_mode(le: QtLineEditPtr) -> t.CInt | t.State: pass +def vqt6_qlineedit_select_all(le: QtLineEditPtr) -> t.State: pass +def vqt6_qlineedit_clear(le: QtLineEditPtr) -> t.State: pass + + +# ============================================================ +# QTextEdit / QPlainTextEdit — 多行文本编辑器 +# ============================================================ +def vqt6_qtextedit_create() -> QtTextEditPtr | t.State: pass +def vqt6_qtextedit_create_with_parent(parent: QtWidgetPtr) -> QtTextEditPtr | t.State: pass +def vqt6_qtextedit_to_plain_text(te: QtTextEditPtr) -> QtStringPtr | t.State: pass +def vqt6_qtextedit_set_plain_text(te: QtTextEditPtr, text: QtStringPtr) -> t.State: pass +def vqt6_qtextedit_set_html(te: QtTextEditPtr, html: QtStringPtr) -> t.State: pass +def vqt6_qtextedit_to_html(te: QtTextEditPtr) -> QtStringPtr | t.State: pass +def vqt6_qtextedit_append(te: QtTextEditPtr, text: QtStringPtr) -> t.State: pass +def vqt6_qtextedit_clear(te: QtTextEditPtr) -> t.State: pass +def vqt6_qtextedit_set_read_only(te: QtTextEditPtr, ro: t.CInt) -> t.State: pass +def vqt6_qtextedit_is_read_only(te: QtTextEditPtr) -> t.CInt | t.State: pass + +def vqt6_qplaintextedit_create() -> QtPlainTextEditPtr | t.State: pass +def vqt6_qplaintextedit_create_with_parent(parent: QtWidgetPtr) -> QtPlainTextEditPtr | t.State: pass +def vqt6_qplaintextedit_to_plain_text(pte: QtPlainTextEditPtr) -> QtStringPtr | t.State: pass +def vqt6_qplaintextedit_set_plain_text(pte: QtPlainTextEditPtr, text: QtStringPtr) -> t.State: pass +def vqt6_qplaintextedit_append(pte: QtPlainTextEditPtr, text: QtStringPtr) -> t.State: pass +def vqt6_qplaintextedit_clear(pte: QtPlainTextEditPtr) -> t.State: pass +def vqt6_qplaintextedit_set_read_only(pte: QtPlainTextEditPtr, ro: t.CInt) -> t.State: pass +def vqt6_qplaintextedit_line_count(pte: QtPlainTextEditPtr) -> t.CInt | t.State: pass + + +# ============================================================ +# QCheckBox / QRadioButton — 复选/单选 +# ============================================================ +def vqt6_qcheckbox_create() -> QtCheckBoxPtr | t.State: pass +def vqt6_qcheckbox_create_with_text(text: QtStringPtr) -> QtCheckBoxPtr | t.State: pass +def vqt6_qcheckbox_create_with_text_parent(text: QtStringPtr, parent: QtWidgetPtr) -> QtCheckBoxPtr | t.State: pass +def vqt6_qcheckbox_set_checked(cb: QtCheckBoxPtr, checked: t.CInt) -> t.State: pass +def vqt6_qcheckbox_is_checked(cb: QtCheckBoxPtr) -> t.CInt | t.State: pass +def vqt6_qcheckbox_set_text(cb: QtCheckBoxPtr, text: QtStringPtr) -> t.State: pass +def vqt6_qcheckbox_text(cb: QtCheckBoxPtr) -> QtStringPtr | t.State: pass +def vqt6_qcheckbox_set_tristate(cb: QtCheckBoxPtr, tristate: t.CInt) -> t.State: pass +def vqt6_qcheckbox_is_tristate(cb: QtCheckBoxPtr) -> t.CInt | t.State: pass + +def vqt6_qradiobutton_create() -> QtRadioButtonPtr | t.State: pass +def vqt6_qradiobutton_create_with_text(text: QtStringPtr) -> QtRadioButtonPtr | t.State: pass +def vqt6_qradiobutton_create_with_text_parent(text: QtStringPtr, parent: QtWidgetPtr) -> QtRadioButtonPtr | t.State: pass +def vqt6_qradiobutton_set_checked(rb: QtRadioButtonPtr, checked: t.CInt) -> t.State: pass +def vqt6_qradiobutton_is_checked(rb: QtRadioButtonPtr) -> t.CInt | t.State: pass +def vqt6_qradiobutton_set_text(rb: QtRadioButtonPtr, text: QtStringPtr) -> t.State: pass +def vqt6_qradiobutton_text(rb: QtRadioButtonPtr) -> QtStringPtr | t.State: pass + + +# ============================================================ +# QComboBox — 下拉框 +# ============================================================ +def vqt6_qcombobox_create() -> QtComboBoxPtr | t.State: pass +def vqt6_qcombobox_create_with_parent(parent: QtWidgetPtr) -> QtComboBoxPtr | t.State: pass +def vqt6_qcombobox_add_item(cb: QtComboBoxPtr, text: QtStringPtr) -> t.State: pass +def vqt6_qcombobox_add_items(cb: QtComboBoxPtr, items: QtStringListPtr) -> t.State: pass +def vqt6_qcombobox_insert_item(cb: QtComboBoxPtr, index: t.CInt, text: QtStringPtr) -> t.State: pass +def vqt6_qcombobox_remove_item(cb: QtComboBoxPtr, index: t.CInt) -> t.State: pass +def vqt6_qcombobox_clear(cb: QtComboBoxPtr) -> t.State: pass +def vqt6_qcombobox_count(cb: QtComboBoxPtr) -> t.CInt | t.State: pass +def vqt6_qcombobox_current_index(cb: QtComboBoxPtr) -> t.CInt | t.State: pass +def vqt6_qcombobox_set_current_index(cb: QtComboBoxPtr, index: t.CInt) -> t.State: pass +def vqt6_qcombobox_current_text(cb: QtComboBoxPtr) -> QtStringPtr | t.State: pass +def vqt6_qcombobox_item_text(cb: QtComboBoxPtr, index: t.CInt) -> QtStringPtr | t.State: pass +def vqt6_qcombobox_set_editable(cb: QtComboBoxPtr, editable: t.CInt) -> t.State: pass +def vqt6_qcombobox_is_editable(cb: QtComboBoxPtr) -> t.CInt | t.State: pass + + +# ============================================================ +# QListWidget — 列表控件 +# ============================================================ +def vqt6_qlistwidget_create() -> QtListWidgetPtr | t.State: pass +def vqt6_qlistwidget_create_with_parent(parent: QtWidgetPtr) -> QtListWidgetPtr | t.State: pass +def vqt6_qlistwidget_add_item(lw: QtListWidgetPtr, text: QtStringPtr) -> t.State: pass +def vqt6_qlistwidget_add_items(lw: QtListWidgetPtr, items: QtStringListPtr) -> t.State: pass +def vqt6_qlistwidget_insert_item(lw: QtListWidgetPtr, row: t.CInt, text: QtStringPtr) -> t.State: pass +def vqt6_qlistwidget_remove_item_widget(lw: QtListWidgetPtr, row: t.CInt) -> t.State: pass +def vqt6_qlistwidget_take_item(lw: QtListWidgetPtr, row: t.CInt) -> QtListWidgetItemPtr | t.State: pass +def vqt6_qlistwidget_clear(lw: QtListWidgetPtr) -> t.State: pass +def vqt6_qlistwidget_count(lw: QtListWidgetPtr) -> t.CInt | t.State: pass +def vqt6_qlistwidget_current_row(lw: QtListWidgetPtr) -> t.CInt | t.State: pass +def vqt6_qlistwidget_set_current_row(lw: QtListWidgetPtr, row: t.CInt) -> t.State: pass +def vqt6_qlistwidget_current_item_text(lw: QtListWidgetPtr) -> QtStringPtr | t.State: pass +def vqt6_qlistwidget_item_text(lw: QtListWidgetPtr, row: t.CInt) -> QtStringPtr | t.State: pass +def vqt6_qlistwidget_set_item_text(lw: QtListWidgetPtr, row: t.CInt, text: QtStringPtr) -> t.State: pass + + +# ============================================================ +# QProgressBar — 进度条 +# ============================================================ +def vqt6_qprogressbar_create() -> QtProgressBarPtr | t.State: pass +def vqt6_qprogressbar_create_with_parent(parent: QtWidgetPtr) -> QtProgressBarPtr | t.State: pass +def vqt6_qprogressbar_set_value(pb: QtProgressBarPtr, value: t.CInt) -> t.State: pass +def vqt6_qprogressbar_value(pb: QtProgressBarPtr) -> t.CInt | t.State: pass +def vqt6_qprogressbar_set_minimum(pb: QtProgressBarPtr, min: t.CInt) -> t.State: pass +def vqt6_qprogressbar_set_maximum(pb: QtProgressBarPtr, max: t.CInt) -> t.State: pass +def vqt6_qprogressbar_set_range(pb: QtProgressBarPtr, min: t.CInt, max: t.CInt) -> t.State: pass +def vqt6_qprogressbar_minimum(pb: QtProgressBarPtr) -> t.CInt | t.State: pass +def vqt6_qprogressbar_maximum(pb: QtProgressBarPtr) -> t.CInt | t.State: pass +def vqt6_qprogressbar_set_text_visible(pb: QtProgressBarPtr, visible: t.CInt) -> t.State: pass +def vqt6_qprogressbar_set_format(pb: QtProgressBarPtr, format: QtStringPtr) -> t.State: pass +def vqt6_qprogressbar_reset(pb: QtProgressBarPtr) -> t.State: pass + + +# ============================================================ +# QSlider — 滑块 +# ============================================================ +def vqt6_qslider_create() -> QtSliderPtr | t.State: pass +def vqt6_qslider_create_with_orientation(orientation: t.CInt) -> QtSliderPtr | t.State: pass +def vqt6_qslider_create_with_orientation_parent(orientation: t.CInt, parent: QtWidgetPtr) -> QtSliderPtr | t.State: pass +def vqt6_qslider_set_value(s: QtSliderPtr, value: t.CInt) -> t.State: pass +def vqt6_qslider_value(s: QtSliderPtr) -> t.CInt | t.State: pass +def vqt6_qslider_set_minimum(s: QtSliderPtr, min: t.CInt) -> t.State: pass +def vqt6_qslider_set_maximum(s: QtSliderPtr, max: t.CInt) -> t.State: pass +def vqt6_qslider_set_range(s: QtSliderPtr, min: t.CInt, max: t.CInt) -> t.State: pass +def vqt6_qslider_set_orientation(s: QtSliderPtr, orientation: t.CInt) -> t.State: pass +def vqt6_qslider_orientation(s: QtSliderPtr) -> t.CInt | t.State: pass +def vqt6_qslider_set_single_step(s: QtSliderPtr, step: t.CInt) -> t.State: pass +def vqt6_qslider_set_page_step(s: QtSliderPtr, step: t.CInt) -> t.State: pass + + +# ============================================================ +# QSpinBox — 数字输入框 +# ============================================================ +def vqt6_qspinbox_create() -> QtSpinBoxPtr | t.State: pass +def vqt6_qspinbox_create_with_parent(parent: QtWidgetPtr) -> QtSpinBoxPtr | t.State: pass +def vqt6_qspinbox_value(sb: QtSpinBoxPtr) -> t.CInt | t.State: pass +def vqt6_qspinbox_set_value(sb: QtSpinBoxPtr, value: t.CInt) -> t.State: pass +def vqt6_qspinbox_set_minimum(sb: QtSpinBoxPtr, min: t.CInt) -> t.State: pass +def vqt6_qspinbox_set_maximum(sb: QtSpinBoxPtr, max: t.CInt) -> t.State: pass +def vqt6_qspinbox_set_range(sb: QtSpinBoxPtr, min: t.CInt, max: t.CInt) -> t.State: pass +def vqt6_qspinbox_minimum(sb: QtSpinBoxPtr) -> t.CInt | t.State: pass +def vqt6_qspinbox_maximum(sb: QtSpinBoxPtr) -> t.CInt | t.State: pass +def vqt6_qspinbox_set_single_step(sb: QtSpinBoxPtr, step: t.CInt) -> t.State: pass +def vqt6_qspinbox_set_prefix(sb: QtSpinBoxPtr, prefix: QtStringPtr) -> t.State: pass +def vqt6_qspinbox_set_suffix(sb: QtSpinBoxPtr, suffix: QtStringPtr) -> t.State: pass +def vqt6_qspinbox_prefix(sb: QtSpinBoxPtr) -> QtStringPtr | t.State: pass +def vqt6_qspinbox_suffix(sb: QtSpinBoxPtr) -> QtStringPtr | t.State: pass + + +# ============================================================ +# 布局 - QLayout / QBoxLayout / QGridLayout / QFormLayout +# ============================================================ +def vqt6_qlayout_add_widget(layout: QtLayoutPtr, widget: QtWidgetPtr) -> t.State: pass +def vqt6_qlayout_remove_widget(layout: QtLayoutPtr, widget: QtWidgetPtr) -> t.State: pass +def vqt6_qlayout_count(layout: QtLayoutPtr) -> t.CInt | t.State: pass +def vqt6_qlayout_item_at(layout: QtLayoutPtr, index: t.CInt) -> QtWidgetPtr | t.State: pass +def vqt6_qlayout_set_contents_margins(layout: QtLayoutPtr, left: t.CInt, top: t.CInt, right: t.CInt, bottom: t.CInt) -> t.State: pass +def vqt6_qlayout_set_spacing(layout: QtLayoutPtr, spacing: t.CInt) -> t.State: pass +def vqt6_qlayout_spacing(layout: QtLayoutPtr) -> t.CInt | t.State: pass +def vqt6_qlayout_invalidate(layout: QtLayoutPtr) -> t.State: pass + +# QHBoxLayout +def vqt6_qhboxlayout_create() -> QtBoxLayoutPtr | t.State: pass +def vqt6_qhboxlayout_create_with_parent(parent: QtWidgetPtr) -> QtBoxLayoutPtr | t.State: pass +def vqt6_qhboxlayout_add_layout(layout: QtBoxLayoutPtr, child: QtLayoutPtr) -> t.State: pass +def vqt6_qhboxlayout_add_stretch(layout: QtBoxLayoutPtr, stretch: t.CInt) -> t.State: pass +def vqt6_qhboxlayout_add_spacing(layout: QtBoxLayoutPtr, size: t.CInt) -> t.State: pass + +# QVBoxLayout +def vqt6_qvboxlayout_create() -> QtBoxLayoutPtr | t.State: pass +def vqt6_qvboxlayout_create_with_parent(parent: QtWidgetPtr) -> QtBoxLayoutPtr | t.State: pass +def vqt6_qvboxlayout_add_layout(layout: QtBoxLayoutPtr, child: QtLayoutPtr) -> t.State: pass +def vqt6_qvboxlayout_add_stretch(layout: QtBoxLayoutPtr, stretch: t.CInt) -> t.State: pass +def vqt6_qvboxlayout_add_spacing(layout: QtBoxLayoutPtr, size: t.CInt) -> t.State: pass + +# QGridLayout +def vqt6_qgridlayout_create() -> QtGridLayoutPtr | t.State: pass +def vqt6_qgridlayout_create_with_parent(parent: QtWidgetPtr) -> QtGridLayoutPtr | t.State: pass +def vqt6_qgridlayout_add_widget(gl: QtGridLayoutPtr, w: QtWidgetPtr, row: t.CInt, col: t.CInt) -> t.State: pass +def vqt6_qgridlayout_add_widget_with_span(gl: QtGridLayoutPtr, w: QtWidgetPtr, row: t.CInt, col: t.CInt, row_span: t.CInt, col_span: t.CInt) -> t.State: pass + +# QFormLayout +def vqt6_qformlayout_create() -> QtFormLayoutPtr | t.State: pass +def vqt6_qformlayout_create_with_parent(parent: QtWidgetPtr) -> QtFormLayoutPtr | t.State: pass +def vqt6_qformlayout_add_row(fl: QtFormLayoutPtr, label: QtStringPtr, field: QtWidgetPtr) -> t.State: pass +def vqt6_qformlayout_add_row_widget_pair(fl: QtFormLayoutPtr, label: QtWidgetPtr, field: QtWidgetPtr) -> t.State: pass + + +# ============================================================ +# QStackedWidget / QTabWidget +# ============================================================ +def vqt6_qstackedwidget_create() -> QtStackedWidgetPtr | t.State: pass +def vqt6_qstackedwidget_create_with_parent(parent: QtWidgetPtr) -> QtStackedWidgetPtr | t.State: pass +def vqt6_qstackedwidget_add_widget(sw: QtStackedWidgetPtr, w: QtWidgetPtr) -> t.CInt | t.State: pass +def vqt6_qstackedwidget_remove_widget(sw: QtStackedWidgetPtr, w: QtWidgetPtr) -> t.State: pass +def vqt6_qstackedwidget_count(sw: QtStackedWidgetPtr) -> t.CInt | t.State: pass +def vqt6_qstackedwidget_current_index(sw: QtStackedWidgetPtr) -> t.CInt | t.State: pass +def vqt6_qstackedwidget_set_current_index(sw: QtStackedWidgetPtr, index: t.CInt) -> t.State: pass +def vqt6_qstackedwidget_current_widget(sw: QtStackedWidgetPtr) -> QtWidgetPtr | t.State: pass +def vqt6_qstackedwidget_widget(sw: QtStackedWidgetPtr, index: t.CInt) -> QtWidgetPtr | t.State: pass + +def vqt6_qtabwidget_create() -> QtTabWidgetPtr | t.State: pass +def vqt6_qtabwidget_create_with_parent(parent: QtWidgetPtr) -> QtTabWidgetPtr | t.State: pass +def vqt6_qtabwidget_add_tab(tw: QtTabWidgetPtr, w: QtWidgetPtr, label: QtStringPtr) -> t.CInt | t.State: pass +def vqt6_qtabwidget_insert_tab(tw: QtTabWidgetPtr, index: t.CInt, w: QtWidgetPtr, label: QtStringPtr) -> t.CInt | t.State: pass +def vqt6_qtabwidget_remove_tab(tw: QtTabWidgetPtr, index: t.CInt) -> t.State: pass +def vqt6_qtabwidget_count(tw: QtTabWidgetPtr) -> t.CInt | t.State: pass +def vqt6_qtabwidget_current_index(tw: QtTabWidgetPtr) -> t.CInt | t.State: pass +def vqt6_qtabwidget_set_current_index(tw: QtTabWidgetPtr, index: t.CInt) -> t.State: pass +def vqt6_qtabwidget_tab_text(tw: QtTabWidgetPtr, index: t.CInt) -> QtStringPtr | t.State: pass +def vqt6_qtabwidget_set_tab_text(tw: QtTabWidgetPtr, index: t.CInt, text: QtStringPtr) -> t.State: pass +def vqt6_qtabwidget_set_tabs_closable(tw: QtTabWidgetPtr, closable: t.CInt) -> t.State: pass +def vqt6_qtabwidget_tabs_closable(tw: QtTabWidgetPtr) -> t.CInt | t.State: pass + + +# ============================================================ +# QMenuBar / QMenu / QAction +# ============================================================ +def vqt6_qmenubar_create() -> QtMenuBarPtr | t.State: pass +def vqt6_qmenubar_create_with_parent(parent: QtWidgetPtr) -> QtMenuBarPtr | t.State: pass +def vqt6_qmenubar_add_menu(mb: QtMenuBarPtr, title: QtStringPtr) -> QtMenuPtr | t.State: pass +def vqt6_qmenubar_add_menu_with_menu(mb: QtMenuBarPtr, menu: QtMenuPtr) -> t.State: pass +def vqt6_qmenubar_add_action(mb: QtMenuBarPtr, action: QtActionPtr) -> t.State: pass +def vqt6_qmenubar_clear(mb: QtMenuBarPtr) -> t.State: pass + +def vqt6_qmenu_create() -> QtMenuPtr | t.State: pass +def vqt6_qmenu_create_with_title(title: QtStringPtr) -> QtMenuPtr | t.State: pass +def vqt6_qmenu_create_with_title_parent(title: QtStringPtr, parent: QtWidgetPtr) -> QtMenuPtr | t.State: pass +def vqt6_qmenu_add_menu(menu: QtMenuPtr, title: QtStringPtr) -> QtMenuPtr | t.State: pass +def vqt6_qmenu_add_action(menu: QtMenuPtr, action: QtActionPtr) -> t.State: pass +def vqt6_qmenu_add_separator(menu: QtMenuPtr) -> t.State: pass +def vqt6_qmenu_clear(menu: QtMenuPtr) -> t.State: pass +def vqt6_qmenu_set_title(menu: QtMenuPtr, title: QtStringPtr) -> t.State: pass +def vqt6_qmenu_title(menu: QtMenuPtr) -> QtStringPtr | t.State: pass +def vqt6_qmenu_add_action_with_text(menu: QtMenuPtr, text: QtStringPtr) -> QtActionPtr | t.State: pass + +def vqt6_qaction_create() -> QtActionPtr | t.State: pass +def vqt6_qaction_create_with_text(text: QtStringPtr) -> QtActionPtr | t.State: pass +def vqt6_qaction_create_with_text_parent(text: QtStringPtr, parent: QtWidgetPtr) -> QtActionPtr | t.State: pass +def vqt6_qaction_set_text(action: QtActionPtr, text: QtStringPtr) -> t.State: pass +def vqt6_qaction_text(action: QtActionPtr) -> QtStringPtr | t.State: pass +def vqt6_qaction_set_icon(action: QtActionPtr, icon: QtIconPtr) -> t.State: pass +def vqt6_qaction_icon(action: QtActionPtr) -> QtIconPtr | t.State: pass +def vqt6_qaction_set_shortcut(action: QtActionPtr, key_sequence: QtStringPtr) -> t.State: pass +def vqt6_qaction_shortcut(action: QtActionPtr) -> QtStringPtr | t.State: pass +def vqt6_qaction_set_checkable(action: QtActionPtr, checkable: t.CInt) -> t.State: pass +def vqt6_qaction_is_checkable(action: QtActionPtr) -> t.CInt | t.State: pass +def vqt6_qaction_set_checked(action: QtActionPtr, checked: t.CInt) -> t.State: pass +def vqt6_qaction_is_checked(action: QtActionPtr) -> t.CInt | t.State: pass +def vqt6_qaction_set_enabled(action: QtActionPtr, enabled: t.CInt) -> t.State: pass +def vqt6_qaction_is_enabled(action: QtActionPtr) -> t.CInt | t.State: pass +def vqt6_qaction_trigger(action: QtActionPtr) -> t.State: pass + + +# ============================================================ +# QStatusBar / QToolBar +# ============================================================ +def vqt6_qstatusbar_create() -> QtStatusBarPtr | t.State: pass +def vqt6_qstatusbar_create_with_parent(parent: QtWidgetPtr) -> QtStatusBarPtr | t.State: pass +def vqt6_qstatusbar_show_message(sb: QtStatusBarPtr, message: QtStringPtr, timeout_ms: t.CInt) -> t.State: pass +def vqt6_qstatusbar_clear_message(sb: QtStatusBarPtr) -> t.State: pass +def vqt6_qstatusbar_current_message(sb: QtStatusBarPtr) -> QtStringPtr | t.State: pass +def vqt6_qstatusbar_add_widget(sb: QtStatusBarPtr, w: QtWidgetPtr, stretch: t.CInt) -> t.State: pass +def vqt6_qstatusbar_add_permanent_widget(sb: QtStatusBarPtr, w: QtWidgetPtr, stretch: t.CInt) -> t.State: pass + +def vqt6_qtoolbar_create() -> QtToolBarPtr | t.State: pass +def vqt6_qtoolbar_create_with_parent(parent: QtWidgetPtr) -> QtToolBarPtr | t.State: pass +def vqt6_qtoolbar_add_widget(tb: QtToolBarPtr, w: QtWidgetPtr) -> QtActionPtr | t.State: pass +def vqt6_qtoolbar_add_action(tb: QtToolBarPtr, action: QtActionPtr) -> t.State: pass +def vqt6_qtoolbar_add_separator(tb: QtToolBarPtr) -> t.State: pass +def vqt6_qtoolbar_set_icon_size(tb: QtToolBarPtr, w: t.CInt, h: t.CInt) -> t.State: pass +def vqt6_qtoolbar_set_orientation(tb: QtToolBarPtr, orientation: t.CInt) -> t.State: pass +def vqt6_qtoolbar_orientation(tb: QtToolBarPtr) -> t.CInt | t.State: pass + + +# ============================================================ +# QMessageBox — 消息对话框(静态方法) +# ============================================================ +def vqt6_qmessagebox_information(parent: QtWidgetPtr, title: QtStringPtr, text: QtStringPtr, buttons: t.CInt) -> t.CInt | t.State: pass +def vqt6_qmessagebox_warning(parent: QtWidgetPtr, title: QtStringPtr, text: QtStringPtr, buttons: t.CInt) -> t.CInt | t.State: pass +def vqt6_qmessagebox_critical(parent: QtWidgetPtr, title: QtStringPtr, text: QtStringPtr, buttons: t.CInt) -> t.CInt | t.State: pass +def vqt6_qmessagebox_question(parent: QtWidgetPtr, title: QtStringPtr, text: QtStringPtr, buttons: t.CInt) -> t.CInt | t.State: pass +def vqt6_qmessagebox_about(parent: QtWidgetPtr, title: QtStringPtr, text: QtStringPtr) -> t.State: pass +def vqt6_qmessagebox_about_qt(parent: QtWidgetPtr) -> t.State: pass + + +# ============================================================ +# QFileDialog — 文件选择对话框(静态方法) +# ============================================================ +def vqt6_qfiledialog_get_open_file_name(parent: QtWidgetPtr, caption: QtStringPtr, dir: QtStringPtr, filter: QtStringPtr) -> QtStringPtr | t.State: pass +def vqt6_qfiledialog_get_save_file_name(parent: QtWidgetPtr, caption: QtStringPtr, dir: QtStringPtr, filter: QtStringPtr) -> QtStringPtr | t.State: pass +def vqt6_qfiledialog_get_existing_directory(parent: QtWidgetPtr, caption: QtStringPtr, dir: QtStringPtr) -> QtStringPtr | t.State: pass +def vqt6_qfiledialog_get_open_file_names(parent: QtWidgetPtr, caption: QtStringPtr, dir: QtStringPtr, filter: QtStringPtr) -> QtStringListPtr | t.State: pass + + +# ============================================================ +# QColorDialog / QFontDialog / QInputDialog — 各种对话框 +# ============================================================ +def vqt6_qcolordialog_get_color(initial: QtColorPtr, parent: QtWidgetPtr, title: QtStringPtr) -> QtColorPtr | t.State: pass +def vqt6_qfontdialog_get_font(initial: QtFontPtr, parent: QtWidgetPtr, title: QtStringPtr) -> QtFontPtr | t.State: pass +def vqt6_qinputdialog_get_text(parent: QtWidgetPtr, title: QtStringPtr, label: QtStringPtr, echo_mode: t.CInt, text: QtStringPtr, ok_pressed: t.CInt | t.CPtr) -> QtStringPtr | t.State: pass +def vqt6_qinputdialog_get_int(parent: QtWidgetPtr, title: QtStringPtr, label: QtStringPtr, value: t.CInt, min_val: t.CInt, max_val: t.CInt, step: t.CInt, ok_pressed: t.CInt | t.CPtr) -> t.CInt | t.State: pass +def vqt6_qinputdialog_get_double(parent: QtWidgetPtr, title: QtStringPtr, label: QtStringPtr, value: t.CDouble, min_val: t.CDouble, max_val: t.CDouble, decimals: t.CInt, ok_pressed: t.CInt | t.CPtr) -> t.CDouble | t.State: pass +def vqt6_qinputdialog_get_item(parent: QtWidgetPtr, title: QtStringPtr, label: QtStringPtr, items: QtStringListPtr, current: t.CInt, editable: t.CInt, ok_pressed: t.CInt | t.CPtr) -> QtStringPtr | t.State: pass diff --git a/includes/vqt6/_types.py b/includes/vqt6/_types.py new file mode 100644 index 0000000..86d1fe5 --- /dev/null +++ b/includes/vqt6/_types.py @@ -0,0 +1,186 @@ +import t +from stdint import * + +# ============================================================ +# vqt6/_types.py — 公共类型定义 +# +# Qt6 C++ 类在 Viper 端都是不透明指针 (void*) +# 不暴露 C++ 类的内部布局,只暴露指针 +# ============================================================ + +# 不透明指针 typedef(Qt6 C++ 类的 Viper 端表示) +QtObjectPtr: t.CTypedef = t.CVoid | t.CPtr # void* 通用不透明指针 +QtStringPtr: t.CTypedef = t.CVoid | t.CPtr # QString* +QtByteArrayPtr: t.CTypedef = t.CVoid | t.CPtr # QByteArray* +QtVariantPtr: t.CTypedef = t.CVoid | t.CPtr # QVariant* +QtObjectListPtr: t.CTypedef = t.CVoid | t.CPtr # QList* +QtStringListPtr: t.CTypedef = t.CVoid | t.CPtr # QStringList* +QtByteArrayListPtr: t.CTypedef = t.CVoid | t.CPtr # QList* +QtEventPtr: t.CTypedef = t.CVoid | t.CPtr # QEvent* + +# QtCore +QtCoreAppPtr: t.CTypedef = t.CVoid | t.CPtr # QCoreApplication* +QtTimerPtr: t.CTypedef = t.CVoid | t.CPtr # QTimer* +QtObjectPtr: t.CTypedef = t.CVoid | t.CPtr # QObject* +QtThreadPtr: t.CTypedef = t.CVoid | t.CPtr # QThread* +QtMutexPtr: t.CTypedef = t.CVoid | t.CPtr # QMutex* +QtWaitConditionPtr: t.CTypedef = t.CVoid | t.CPtr # QWaitCondition* + +# QtGui +QtColorPtr: t.CTypedef = t.CVoid | t.CPtr # QColor* +QtFontPtr: t.CTypedef = t.CVoid | t.CPtr # QFont* +QtFontMetricsPtr: t.CTypedef = t.CVoid | t.CPtr # QFontMetrics* +QtPixmapPtr: t.CTypedef = t.CVoid | t.CPtr # QPixmap* +QtImagePtr: t.CTypedef = t.CVoid | t.CPtr # QImage* +QtPainterPtr: t.CTypedef = t.CVoid | t.CPtr # QPainter* +QtPenPtr: t.CTypedef = t.CVoid | t.CPtr # QPen* +QtBrushPtr: t.CTypedef = t.CVoid | t.CPtr # QBrush* +QtIconPtr: t.CTypedef = t.CVoid | t.CPtr # QIcon* +QtKeyEventPtr: t.CTypedef = t.CVoid | t.CPtr # QKeyEvent* +QtMouseEventPtr: t.CTypedef = t.CVoid | t.CPtr # QMouseEvent* +QtResizeEventPtr: t.CTypedef = t.CVoid | t.CPtr # QResizeEvent* +QtPaintEventPtr: t.CTypedef = t.CVoid | t.CPtr # QPaintEvent* +QtCloseEventPtr: t.CTypedef = t.CVoid | t.CPtr # QCloseEvent* +QtCursorPtr: t.CTypedef = t.CVoid | t.CPtr # QCursor* + +# QtWidgets +QtAppPtr: t.CTypedef = t.CVoid | t.CPtr # QApplication* +QtWidgetPtr: t.CTypedef = t.CVoid | t.CPtr # QWidget* +QtDialogPtr: t.CTypedef = t.CVoid | t.CPtr # QDialog* +QtMainWindowPtr: t.CTypedef = t.CVoid | t.CPtr # QMainWindow* +QtLabelPtr: t.CTypedef = t.CVoid | t.CPtr # QLabel* +QtPushButtonPtr: t.CTypedef = t.CVoid | t.CPtr # QPushButton* +QtLineEditPtr: t.CTypedef = t.CVoid | t.CPtr # QLineEdit* +QtTextEditPtr: t.CTypedef = t.CVoid | t.CPtr # QTextEdit* +QtPlainTextEditPtr: t.CTypedef = t.CVoid | t.CPtr # QPlainTextEdit* +QtCheckBoxPtr: t.CTypedef = t.CVoid | t.CPtr # QCheckBox* +QtRadioButtonPtr: t.CTypedef = t.CVoid | t.CPtr # QRadioButton* +QtComboBoxPtr: t.CTypedef = t.CVoid | t.CPtr # QComboBox* +QtListWidgetPtr: t.CTypedef = t.CVoid | t.CPtr # QListWidget* +QtListWidgetItemPtr: t.CTypedef = t.CVoid | t.CPtr # QListWidgetItem* +QtProgressBarPtr: t.CTypedef = t.CVoid | t.CPtr # QProgressBar* +QtSliderPtr: t.CTypedef = t.CVoid | t.CPtr # QSlider* +QtSpinBoxPtr: t.CTypedef = t.CVoid | t.CPtr # QSpinBox* +QtLayoutPtr: t.CTypedef = t.CVoid | t.CPtr # QLayout* +QtBoxLayoutPtr: t.CTypedef = t.CVoid | t.CPtr # QHBoxLayout / QVBoxLayout* +QtGridLayoutPtr: t.CTypedef = t.CVoid | t.CPtr # QGridLayout* +QtFormLayoutPtr: t.CTypedef = t.CVoid | t.CPtr # QFormLayout* +QtStackedWidgetPtr: t.CTypedef = t.CVoid | t.CPtr # QStackedWidget* +QtTabWidgetPtr: t.CTypedef = t.CVoid | t.CPtr # QTabWidget* +QtMenuBarPtr: t.CTypedef = t.CVoid | t.CPtr # QMenuBar* +QtMenuPtr: t.CTypedef = t.CVoid | t.CPtr # QMenu* +QtActionPtr: t.CTypedef = t.CVoid | t.CPtr # QAction* +QtStatusBarPtr: t.CTypedef = t.CVoid | t.CPtr # QStatusBar* +QtToolBarPtr: t.CTypedef = t.CVoid | t.CPtr # QToolBar* +QtMessageBoxPtr: t.CTypedef = t.CVoid | t.CPtr # QMessageBox* +QtFileDialogPtr: t.CTypedef = t.CVoid | t.CPtr # QFileDialog* +QtColorDialogPtr: t.CTypedef = t.CVoid | t.CPtr # QColorDialog* +QtFontDialogPtr: t.CTypedef = t.CVoid | t.CPtr # QFontDialog* +QtInputDialogPtr: t.CTypedef = t.CVoid | t.CPtr # QInputDialog* + +# QtNetwork +QtTcpSocketPtr: t.CTypedef = t.CVoid | t.CPtr # QTcpSocket* +QtUdpSocketPtr: t.CTypedef = t.CVoid | t.CPtr # QUdpSocket* +QtHostAddressPtr: t.CTypedef = t.CVoid | t.CPtr # QHostAddress* +QtAbstractSocketPtr: t.CTypedef = t.CVoid | t.CPtr # QAbstractSocket* +QtNetworkAccessManagerPtr: t.CTypedef = t.CVoid | t.CPtr # QNetworkAccessManager* +QtNetworkReplyPtr: t.CTypedef = t.CVoid | t.CPtr # QNetworkReply* +QtNetworkRequestPtr: t.CTypedef = t.CVoid | t.CPtr # QNetworkRequest* + +# ============================================================ +# Qt 通用常量(C++ 枚举值的 C 兼容定义) +# ============================================================ + +# Qt 键盘按键 (Qt::Key) +QT_KEY_ESCAPE: t.CDefine = 0x01000000 +QT_KEY_TAB: t.CDefine = 0x01000001 +QT_KEY_BACKTAB: t.CDefine = 0x01000002 +QT_KEY_BACKSPACE: t.CDefine = 0x01000003 +QT_KEY_RETURN: t.CDefine = 0x01000004 +QT_KEY_ENTER: t.CDefine = 0x01000005 +QT_KEY_INSERT: t.CDefine = 0x01000006 +QT_KEY_DELETE: t.CDefine = 0x01000007 +QT_KEY_PAUSE: t.CDefine = 0x01000008 +QT_KEY_PRINT: t.CDefine = 0x01000009 +QT_KEY_HOME: t.CDefine = 0x01000010 +QT_KEY_END: t.CDefine = 0x01000011 +QT_KEY_LEFT: t.CDefine = 0x01000012 +QT_KEY_UP: t.CDefine = 0x01000013 +QT_KEY_RIGHT: t.CDefine = 0x01000014 +QT_KEY_DOWN: t.CDefine = 0x01000015 +QT_KEY_PAGEUP: t.CDefine = 0x01000016 +QT_KEY_PAGEDOWN: t.CDefine = 0x01000017 +QT_KEY_SHIFT: t.CDefine = 0x01000020 +QT_KEY_CONTROL: t.CDefine = 0x01000021 +QT_KEY_META: t.CDefine = 0x01000022 +QT_KEY_ALT: t.CDefine = 0x01000023 +QT_KEY_F1: t.CDefine = 0x01000030 +QT_KEY_F2: t.CDefine = 0x01000031 +QT_KEY_F12: t.CDefine = 0x0100003b +QT_KEY_SPACE: t.CDefine = 0x20 +QT_KEY_A: t.CDefine = 0x41 +QT_KEY_Z: t.CDefine = 0x5a +QT_KEY_0: t.CDefine = 0x30 +QT_KEY_9: t.CDefine = 0x39 + +# Qt 鼠标按键 (Qt::MouseButton) +QT_NO_BUTTON: t.CDefine = 0x00000000 +QT_LEFT_BUTTON: t.CDefine = 0x00000001 +QT_RIGHT_BUTTON: t.CDefine = 0x00000002 +QT_MID_BUTTON: t.CDefine = 0x00000004 + +# Qt::AlignmentFlag +QT_ALIGN_LEFT: t.CDefine = 0x0001 +QT_ALIGN_RIGHT: t.CDefine = 0x0002 +QT_ALIGN_HCENTER: t.CDefine = 0x0004 +QT_ALIGN_TOP: t.CDefine = 0x0020 +QT_ALIGN_BOTTOM: t.CDefine = 0x0040 +QT_ALIGN_VCENTER: t.CDefine = 0x0080 +QT_ALIGN_CENTER: t.CDefine = QT_ALIGN_HCENTER | QT_ALIGN_VCENTER + +# Qt::Orientation +QT_HORIZONTAL: t.CDefine = 0x1 +QT_VERTICAL: t.CDefine = 0x2 + +# Qt 焦点 +QT_NO_FOCUS: t.CDefine = 0x00 +QT_TAB_FOCUS: t.CDefine = 0x01 +QT_CLICK_FOCUS: t.CDefine = 0x02 +QT_STRONG_FOCUS: t.CDefine = QT_TAB_FOCUS | QT_CLICK_FOCUS +QT_WHEEL_FOCUS: t.CDefine = 0x04 +QT_ALL_FOCUS: t.CDefine = QT_STRONG_FOCUS | QT_WHEEL_FOCUS + +# Qt::WindowFlag +QT_WINDOW: t.CDefine = 0x00000001 +QT_DIALOG: t.CDefine = 0x00000002 | QT_WINDOW +QT_SHEET: t.CDefine = 0x00000004 | QT_WINDOW +QT_DRAWER: t.CDefine = QT_SHEET | 0x00000008 +QT_POPUP: t.CDefine = 0x00000008 | QT_WINDOW +QT_TOOL: t.CDefine = 0x0000000a | QT_WINDOW +QT_TOOLTIP: t.CDefine = 0x0000000c | QT_WINDOW +QT_SPLASH_SCREEN: t.CDefine = 0x0000000e | QT_WINDOW + +QT_WINDOW_TITLE: t.CDefine = 0x00000001 +QT_WINDOW_SYSTEM_MENU: t.CDefine = 0x00000002 +QT_WINDOW_MIN_MAX_BUTTONS: t.CDefine = 0x00000004 +QT_WINDOW_CLOSE_BUTTON: t.CDefine = 0x08000000 +QT_WINDOW_CONTEXT_HELP_BUTTON: t.CDefine = 0x00000008 + +# QMessageBox 标准按钮 +QT_OK: t.CDefine = 0x00000400 +QT_CANCEL: t.CDefine = 0x00400000 +QT_YES: t.CDefine = 0x00004000 +QT_NO: t.CDefine = 0x00010000 +QT_CLOSE: t.CDefine = 0x00200000 + +# 事件类型 +QT_EVENT_NONE: t.CDefine = 0 +QT_EVENT_KEY: t.CDefine = 6 +QT_EVENT_MOUSE_BUTTON_PRESS: t.CDefine = 2 +QT_EVENT_MOUSE_BUTTON_RELEASE: t.CDefine = 3 +QT_EVENT_MOUSE_MOVE: t.CDefine = 5 +QT_EVENT_PAINT: t.CDefine = 12 +QT_EVENT_RESIZE: t.CDefine = 14 +QT_EVENT_CLOSE: t.CDefine = 19 +QT_EVENT_SHOW: t.CDefine = 17 +QT_EVENT_HIDE: t.CDefine = 18 diff --git a/lib/Projectrans/DeclarationGenerator.py b/lib/Projectrans/DeclarationGenerator.py index e618ea0..8e214aa 100644 --- a/lib/Projectrans/DeclarationGenerator.py +++ b/lib/Projectrans/DeclarationGenerator.py @@ -254,7 +254,7 @@ class DeclarationGenerator: """解析基类名称的类型种类(支持别名) Returns: - 'enum' | 'union' | 'renum' | 'struct' | None + 'enum' | 'union' | 'renum' | 'struct' | 'ctype_marker' | None """ # 1) 查 t 别名映射(from t import CEnum as en) if base_name in self._t_alias_map: @@ -265,6 +265,10 @@ class DeclarationGenerator: return 'union' if issubclass(t_cls, t.CStruct): return 'struct' + # CType 及其子类(CChar/CInt/CVoid/CPtr 等)是"类型强转"标记, + # 不应被编译为真实结构体,也不应被生成 stub 声明。 + if issubclass(t_cls, t.CType): + return 'ctype_marker' # 2) 直接查 t 模块属性 t_cls: type | None = getattr(t, base_name, None) @@ -275,6 +279,8 @@ class DeclarationGenerator: return 'union' if issubclass(t_cls, t.CStruct): return 'struct' + # CType 及其子类是"类型强转"标记,不编译为结构体。 + return 'ctype_marker' return None @@ -313,6 +319,10 @@ class DeclarationGenerator: is_union = True elif kind == 'renum': is_renum = True + elif kind == 'ctype_marker': + # CType 及其子类(CChar/CInt/CVoid/CPtr/CTypeDefault 等)是 + # "类型强转"标记,不应被编译为真实结构体,也不生成 stub 声明。 + return decls if is_exception: return decls if is_enum: diff --git a/lib/Projectrans/Phase1Generator.py b/lib/Projectrans/Phase1Generator.py index c30ed83..91466ff 100644 --- a/lib/Projectrans/Phase1Generator.py +++ b/lib/Projectrans/Phase1Generator.py @@ -10,6 +10,7 @@ from lib.Projectrans.Utils import compute_sha1, get_file_dependencies, find_reac from lib.Projectrans.DeclarationGenerator import DeclarationGenerator from lib.core.VLogger import get_logger as _vlog from lib.constants.config import mode as _ConfigMode +from lib.includes import t from StubGen import PythonToStubConverter # 全局缓存目录(不被 --clean 清除),用于缓存库文件的 .pyi / .stub.ll / .doc.json @@ -509,6 +510,15 @@ class Phase1Generator: exception_names: set[str] = set() struct_sha1_map: dict[str, str] = {} class_def_map: dict[str, ast.ClassDef] = {} + # 预先收集所有 CType 子类名称(来自 t 模块和别名映射), + # 用于在 struct 注册表中跳过"类型强转"标记类。 + ctype_marker_names: set[str] = set() + for attr_name in dir(t): + t_cls: type | None = getattr(t, attr_name, None) + if isinstance(t_cls, type) and issubclass(t_cls, t.CType) and t_cls is not t.CType: + if not issubclass(t_cls, (t.CEnum, t.REnum, t.CUnion, t.CStruct)): + ctype_marker_names.add(t_cls.__name__) + ctype_marker_names.add(attr_name) valid_sha1_keys: set[str] = set(self.sha1_map.keys()) for fname in os.listdir(self.temp_dir): if not fname.endswith('.pyi'): @@ -526,6 +536,7 @@ class Phase1Generator: is_enum: bool = False is_renum: bool = False is_exception: bool = False + is_ctype_marker: bool = False if node.bases: for base in node.bases: if isinstance(base, ast.Attribute) and hasattr(base, 'attr'): @@ -538,6 +549,9 @@ class Phase1Generator: elif base.attr == 'Exception' or base.attr in exception_names: is_exception = True break + elif base.attr in ctype_marker_names: + is_ctype_marker = True + break elif isinstance(base, ast.Name) and hasattr(base, 'id'): if base.id == 'REnum': is_renum = True @@ -548,8 +562,11 @@ class Phase1Generator: elif base.id == 'Exception' or base.id in exception_names: is_exception = True break + elif base.id in ctype_marker_names: + is_ctype_marker = True + break # 也检查装饰器形式 @t.CEnum / @t.REnum - if not is_enum and not is_renum and not is_exception and hasattr(node, 'decorator_list') and node.decorator_list: + if not is_enum and not is_renum and not is_exception and not is_ctype_marker and hasattr(node, 'decorator_list') and node.decorator_list: for deco in node.decorator_list: deco_attr: str | None = None if isinstance(deco, ast.Attribute) and hasattr(deco, 'attr'): @@ -562,6 +579,10 @@ class Phase1Generator: elif deco_attr in ('CEnum', 'Enum'): is_enum = True break + # CType 及其子类是"类型强转"标记,不加入 struct_names / enum_names / exception_names, + # 也不加入 class_def_map(避免下游误将其作为结构体处理)。 + if is_ctype_marker: + continue # REnum 是结构体类型(带 __tag + payload),需加入 struct_names 以便 # DeclarationGenerator._get_type_str 返回 %Name* 而非 i32 if is_renum: diff --git a/lib/core/Handles/HandlesAnnAssign.py b/lib/core/Handles/HandlesAnnAssign.py index 81eb24f..291929a 100644 --- a/lib/core/Handles/HandlesAnnAssign.py +++ b/lib/core/Handles/HandlesAnnAssign.py @@ -149,16 +149,8 @@ class AnnAssignHandle(BaseHandle): if isinstance(TargetType, ir.IntType) and isinstance(Value.type, ir.IntType): if TargetType.width < Value.type.width: Value = Gen.builder.trunc(Value, TargetType, name="trunc") - elif TargetType.width > Value.type.width: - if Value.type.width == 1: - # i1 是布尔值,无符号语义,必须 zext - Value = Gen.builder.zext(Value, TargetType, name="zext") - else: - is_unsigned: bool = id(Value) in Gen._unsigned_results - if is_unsigned: - Value = Gen.builder.zext(Value, TargetType, name="zext") - else: - Value = Gen.builder.sext(Value, TargetType, name="sext") + else: + Value = Gen.builder.zext(Value, TargetType, name="zext") elif isinstance(TargetType, ir.PointerType) and isinstance(Value.type, ir.PointerType): Value = Gen.builder.bitcast(Value, TargetType, name="ptr_bitcast") elif isinstance(TargetType, ir.PointerType) and isinstance(Value.type, ir.IntType): @@ -317,7 +309,6 @@ class AnnAssignHandle(BaseHandle): TypeInfo = CTypeInfo() TypeInfo.BaseType = t.CInt() IsPtr: bool = TypeInfo.IsPtr - if TypeInfo.IsDefine: if Node.value and isinstance(Node.value, ast.Constant): if not hasattr(Gen, '_define_constants'): @@ -556,22 +547,14 @@ class AnnAssignHandle(BaseHandle): VarPtr: ir.Value = Gen.variables[VarName] if isinstance(VarPtr.type, ir.PointerType): TargetType: ir.Type = VarPtr.type.pointee - if InitValue.type != TargetType: - if isinstance(InitValue.type, ir.IntType) and isinstance(TargetType, ir.IntType): - if TargetType.width > InitValue.type.width: - if InitValue.type.width == 1: - # i1 是布尔值,无符号语义,必须 zext - InitValue = Gen.builder.zext(InitValue, TargetType, name=f"zext_{VarName}") - else: - is_unsigned: bool = (Node.value is not None and Gen._check_node_unsigned(Node.value)) or id(InitValue) in Gen._unsigned_results - if is_unsigned: - InitValue = Gen.builder.zext(InitValue, TargetType, name=f"zext_{VarName}") - else: - InitValue = Gen.builder.sext(InitValue, TargetType, name=f"sext_{VarName}") - elif TargetType.width < InitValue.type.width: - InitValue = Gen.builder.trunc(InitValue, TargetType, name=f"trunc_{VarName}") - elif isinstance(InitValue.type, ir.PointerType) and isinstance(TargetType, ir.PointerType): - InitValue = Gen.builder.bitcast(InitValue, TargetType, name=f"cast_{VarName}") + if InitValue.type != TargetType: + if isinstance(InitValue.type, ir.IntType) and isinstance(TargetType, ir.IntType): + if TargetType.width > InitValue.type.width: + InitValue = Gen.builder.zext(InitValue, TargetType, name=f"zext_{VarName}") + elif TargetType.width < InitValue.type.width: + InitValue = Gen.builder.trunc(InitValue, TargetType, name=f"trunc_{VarName}") + elif isinstance(InitValue.type, ir.PointerType) and isinstance(TargetType, ir.PointerType): + InitValue = Gen.builder.bitcast(InitValue, TargetType, name=f"cast_{VarName}") Gen._store(InitValue, VarPtr) except Exception as _e: if _config_mode == "strict": @@ -648,15 +631,7 @@ class AnnAssignHandle(BaseHandle): if InitValue.type != VarType: if isinstance(InitValue.type, ir.IntType) and isinstance(VarType, ir.IntType): if VarType.width > InitValue.type.width: - if InitValue.type.width == 1: - # i1 是布尔值,无符号语义,必须 zext - InitValue = Gen.builder.zext(InitValue, VarType, name=f"zext_{VarName}") - else: - is_unsigned: bool = (Node.value is not None and Gen._check_node_unsigned(Node.value)) or id(InitValue) in Gen._unsigned_results - if is_unsigned: - InitValue = Gen.builder.zext(InitValue, VarType, name=f"zext_{VarName}") - else: - InitValue = Gen.builder.sext(InitValue, VarType, name=f"sext_{VarName}") + InitValue = Gen.builder.zext(InitValue, VarType, name=f"zext_{VarName}") elif VarType.width < InitValue.type.width: InitValue = Gen.builder.trunc(InitValue, VarType, name=f"trunc_{VarName}") elif isinstance(InitValue.type, ir.PointerType) and isinstance(VarType, ir.PointerType): diff --git a/lib/core/Handles/HandlesAssign.py b/lib/core/Handles/HandlesAssign.py index 7c3a808..afe4f8e 100644 --- a/lib/core/Handles/HandlesAssign.py +++ b/lib/core/Handles/HandlesAssign.py @@ -536,15 +536,7 @@ class AssignHandle(BaseHandle): if DefVal.type != expected_type: if isinstance(expected_type, ir.IntType) and isinstance(DefVal.type, ir.IntType): if DefVal.type.width < expected_type.width: - if DefVal.type.width == 1: - # i1 是布尔值,无符号语义,必须 zext - DefVal = Gen.builder.zext(DefVal, expected_type, name=f"zext_default_{arg_idx}") - else: - is_unsigned: bool = Gen._check_node_unsigned(arg_def[def_idx]) or id(DefVal) in Gen._unsigned_results - if is_unsigned: - DefVal = Gen.builder.zext(DefVal, expected_type, name=f"zext_default_{arg_idx}") - else: - DefVal = Gen.builder.sext(DefVal, expected_type, name=f"sext_default_{arg_idx}") + DefVal = Gen.builder.zext(DefVal, expected_type, name=f"zext_default_{arg_idx}") elif DefVal.type.width > expected_type.width: DefVal = Gen.builder.trunc(DefVal, expected_type, name=f"trunc_default_{arg_idx}") CallArgs.append(DefVal) diff --git a/lib/core/Handles/HandlesClassDef.py b/lib/core/Handles/HandlesClassDef.py index 9e404e9..0c34e32 100644 --- a/lib/core/Handles/HandlesClassDef.py +++ b/lib/core/Handles/HandlesClassDef.py @@ -253,6 +253,10 @@ class ClassHandle(BaseHandle): return 'union' if issubclass(cls, t.CStruct): return 'struct' + # CType 及其子类(CChar/CInt/CVoid/CPtr 等)是"类型强转"标记, + # 不应被编译为真实结构体。 + if issubclass(cls, t.CType): + return 'ctype_marker' # 2) 查 t 模块属性(直接引用 t.CEnum 等) t_cls: type | None = getattr(t, base_name, None) @@ -263,9 +267,47 @@ class ClassHandle(BaseHandle): return 'union' if issubclass(t_cls, t.CStruct): return 'struct' + # CType 及其子类是"类型强转"标记,不编译为结构体。 + return 'ctype_marker' return None + @staticmethod + def _is_classname_ctype_marker(class_name: str) -> bool: + """检查类名是否是 t.CType 的"类型强转"标记子类。 + + 只有 position 不含 BASE 的纯修饰符/标记类型(CPtr/CVolatile/CConst/ + CInline/CStatic/CExtern/CExport/CRegister/CAuto/_CTypedef/CTypeDefault 等) + 才应跳过编译。有 BASE position 的基本类型(CInt/CChar/CSizeT/CLong 等) + 有具体大小,应被正常编译。CType 基类本身无 bases,base 检测无法触发, + 需要直接按类名检查。 + + 注意:CTypeRegistry.GetClassByName 会跳过 CType 本身和 CTypeDefault, + 所以这里直接用 getattr(t, name) 检查 t 模块属性。 + + Returns: + True 如果 class_name 是 CType 标记子类名(应跳过编译) + """ + if not class_name: + return False + # 直接查 t 模块属性(CTypeRegistry._build 会跳过 CType/CTypeDefault/BigEndian/LittleEndian) + t_cls: type | None = getattr(t, class_name, None) + if not isinstance(t_cls, type) or not issubclass(t_cls, t.CType): + return False + if issubclass(t_cls, (t.CStruct, t.CEnum, t.REnum, t.CUnion)): + return False + # 基本类型(position 含 BASE 且 Size > 0)有具体大小,不应跳过 + # CVoid 虽含 BASE 但 Size=0,CType Size=None,仍需跳过 + if t.CType.BASE in t_cls.position: + try: + inst = t_cls() + size_val = getattr(inst, 'Size', None) + if size_val is not None and size_val > 0: + return False + except Exception: + pass + return True + def _resolve_decorator_kind(self, Node: ast.ClassDef, Gen: LlvmGeneratorMixin) -> str | None: """从装饰器列表中解析结构体类型种类 @@ -409,6 +451,11 @@ class ClassHandle(BaseHandle): def _EmitClassLlvm(self, Node: ast.ClassDef, Gen: LlvmGeneratorMixin, declare_only: bool = False) -> None: ClassName: str = Node.name + # t.CType 及其子类(CChar/CInt/CVoid/CPtr/CTypeDefault 等)是"类型强转"标记, + # 不应被编译为真实结构体。CType 基类本身无 bases,base 检测无法触发, + # 此处在方法入口直接按类名跳过。 + if self._is_classname_ctype_marker(ClassName): + return if self._is_generic_class(Node): if not hasattr(self, '_generic_class_templates'): self._generic_class_templates = {} @@ -449,6 +496,10 @@ class ClassHandle(BaseHandle): IsCunion = True elif kind == 'renum': IsRenum = True + elif kind == 'ctype_marker': + # CType 及其子类(CChar/CInt/CVoid/CPtr/CTypeDefault 等)是 + # "类型强转"标记,不应被编译为真实结构体。直接 return 跳过编译。 + return if IsCenum: self._RegisterEnumMembers(Node) return @@ -540,50 +591,33 @@ class ClassHandle(BaseHandle): if pm_name in parent_defaults: Gen.class_member_defaults[ClassName][pm_name] = parent_defaults[pm_name] Gen.class_members[ClassName] = inherited + Gen.class_members[ClassName] - if ParentClass in Gen.class_methods: - parent_methods: list = list(Gen.class_methods[ParentClass]) - # 从 Node.body 收集子类自有方法(此时 Gen.class_methods[ClassName] 可能为空, - # 因为自有方法在 L660-676 才注册。若直接用 Gen.class_methods[ClassName], - # child_method_map 会为空,所有父类方法被当作"未覆盖"添加为包装器, - # 然后 register_method 又把它们追加到 Gen.class_methods[ClassName], - # L566 循环再次添加 → 产生重复条目,vtable 布局与导入模块不一致) - child_method_map: dict[str, str] = {} - child_self_methods_snapshot: list[str] = [] - for _item in Node.body: - if isinstance(_item, ast.FunctionDef): - _mname: str = _item.name - if _mname in ('__new__', '__init__', '__before_init__'): - continue - _item_meta: FuncMeta = self.Trans.FunctionHandler._ExtractFuncMeta(_item.decorator_list) - if FuncMeta.PROPERTY_SETTER in _item_meta: - _full: str = f"{ClassName}.{_mname}$set" - elif FuncMeta.PROPERTY_DELETER in _item_meta: - _full = f"{ClassName}.{_mname}$del" - else: - _full = f"{ClassName}.{_mname}" - _short: str = _mname - child_method_map[_short] = _full - child_self_methods_snapshot.append(_full) - # 父类方法在前(保证 vtable 布局一致性,子类多态分派索引正确), - # 子类新增方法在后。子类覆盖的方法放在父类方法的位置(用子类实现)。 - new_methods: list = [] - covered_names: set[str] = set() - for pm in parent_methods: - method_name: str = pm.split('.')[-1] if '.' in pm else pm - if method_name in child_method_map: - # 子类覆盖了父类方法 — 用子类的实现,放在父类的位置 - new_methods.append(child_method_map[method_name]) - covered_names.add(method_name) - else: - # 父类独有方法 — 子类未覆盖,注册子类包装器 - child_method: str = f"{ClassName}.{method_name}" - new_methods.append(child_method) - Gen.register_method(ClassName, child_method) - # 添加子类新增方法(不在父类中的)— 使用快照避免 register_method 污染 - for m in child_self_methods_snapshot: - method_name: str = m.split('.')[-1] if '.' in m else m - if method_name not in covered_names: - new_methods.append(m) + if ParentClass in Gen.class_methods: + parent_methods: list = list(Gen.class_methods[ParentClass]) + # 构建子类已有方法映射(方法短名 -> 方法全名) + child_method_map: dict[str, str] = {} + for m in Gen.class_methods[ClassName]: + method_name: str = m.split('.')[-1] if '.' in m else m + child_method_map[method_name] = m + # 父类方法在前(保证 vtable 布局一致性,子类多态分派索引正确), + # 子类新增方法在后。子类覆盖的方法放在父类方法的位置(用子类实现)。 + new_methods: list = [] + covered_names: set[str] = set() + for pm in parent_methods: + method_name: str = pm.split('.')[-1] if '.' in pm else pm + if method_name in child_method_map: + # 子类覆盖了父类方法 — 用子类的实现,放在父类的位置 + new_methods.append(child_method_map[method_name]) + covered_names.add(method_name) + else: + # 父类独有方法 — 子类未覆盖,注册子类包装器 + child_method: str = f"{ClassName}.{method_name}" + new_methods.append(child_method) + Gen.register_method(ClassName, child_method) + # 添加子类新增方法(不在父类中的) + for m in Gen.class_methods[ClassName]: + method_name: str = m.split('.')[-1] if '.' in m else m + if method_name not in covered_names: + new_methods.append(m) Gen.class_methods[ClassName] = new_methods # 提取首个裸字符串字面量作为结构体 __doc__ docstring if (Node.body and isinstance(Node.body[0], ast.Expr) diff --git a/lib/core/Handles/HandlesExprAsm.py b/lib/core/Handles/HandlesExprAsm.py index 22cff72..cacb44d 100644 --- a/lib/core/Handles/HandlesExprAsm.py +++ b/lib/core/Handles/HandlesExprAsm.py @@ -52,6 +52,9 @@ class ExprAsmHandle(BaseHandle): def _HandleAsmLlvm(self, Node: ast.Call) -> ir.Value | None: Gen: LlvmCodeGenerator = self.Trans.LlvmGen + # DEBUG: 验证 _HandleAsmLlvm 是否被调用 + import sys as _dbg_sys + print(f"[DEBUG_ASM] _HandleAsmLlvm called, Node.args={len(Node.args)}, keywords={[kw.arg for kw in Node.keywords]}", file=_dbg_sys.stderr) op_arg: Any = None input_arg: Any = None diff --git a/lib/core/Handles/HandlesExprBuiltin.py b/lib/core/Handles/HandlesExprBuiltin.py index ae09c61..ebc337b 100644 --- a/lib/core/Handles/HandlesExprBuiltin.py +++ b/lib/core/Handles/HandlesExprBuiltin.py @@ -165,6 +165,39 @@ class ExprBuiltinHandle(BaseHandle): return ir.Constant(ir.IntType(8).as_pointer(), None) elif FuncName == 'input': return self._HandleInputLlvm(Node) + elif FuncName == 'isinstance': + # isinstance(obj, Type) — 静态类型系统下编译时解析 + # TransPyC 是静态类型系统,运行时无 RTTI。 + # 对于编译时已知类型,若变量类型是目标类型的子类则生成 true,否则 false。 + # 若无法确定(如基类指针指向子类),保守生成 false。 + # 注意:这主要让编译时辅助方法(如 c.py 中的 Asm._parse_asm_descr)能通过编译, + # 这些方法不在运行时被调用,行为不正确不影响程序。 + if len(Node.args) >= 2: + ObjVal: ir.Value | None = self.HandleExprLlvm(Node.args[0]) + TypeNode: ast.expr = Node.args[1] + TargetClassName: str = '' + if isinstance(TypeNode, ast.Name): + TargetClassName = TypeNode.id + elif isinstance(TypeNode, ast.Attribute): + TargetClassName = TypeNode.attr + if ObjVal is not None and TargetClassName: + ObjType: ir.Type = ObjVal.type + # 解引用指针获取 pointee 类型 + if isinstance(ObjType, ir.PointerType): + ObjType = ObjType.pointee + # 检查 pointee 是否是目标结构体类型 + if isinstance(ObjType, ir.IdentifiedStructType): + ObjStructName: str = getattr(ObjType, 'name', '') + ShortName: str = ObjStructName.split('.')[-1] if '.' in ObjStructName else ObjStructName + if ShortName == TargetClassName: + return ir.Constant(ir.IntType(1), 1) + # 检查 Gen.var_struct_class + if isinstance(Node.args[0], ast.Name): + VarClassName: str | None = Gen.var_struct_class.get(Node.args[0].id) + if VarClassName == TargetClassName: + return ir.Constant(ir.IntType(1), 1) + return ir.Constant(ir.IntType(1), 0) + return ir.Constant(ir.IntType(1), 0) elif FuncName == 'ord': if Node.args: return self._HandleOrdLlvm(Node.args[0]) diff --git a/lib/core/Handles/HandlesExprCall.py b/lib/core/Handles/HandlesExprCall.py index e577709..93bdc6c 100644 --- a/lib/core/Handles/HandlesExprCall.py +++ b/lib/core/Handles/HandlesExprCall.py @@ -572,10 +572,9 @@ class ExprCallHandle(BaseHandle): result = self._HandleClassNewLlvm(Node, FuncAttr, module_sha1=_ctor_module_sha1) if result is not None: return result - if FuncAttr in Gen.structs: - result = self._HandleClassNewLlvm(Node, FuncAttr, module_sha1=_ctor_module_sha1) - if result is not None: - return result + # c 模块的特殊语法设施(Addr/Deref/DerefAs/Set/Load/Asm 等)必须优先处理, + # 即使它们在 Gen.structs 中(c.py 的类会被声明为结构体但不应被实例化)。 + # c.py 是语法部分,不应被编译,其中的类是编译器语法设施。 if ModulePath == 'c': if FuncAttr == 'Asm': return self.Trans.ExprAsmHandle._HandleAsmLlvm(Node) @@ -607,6 +606,10 @@ class ExprCallHandle(BaseHandle): return self._HandleLLVMIRLlvm(Node) elif FuncAttr in ('LInp', 'LOut'): return ir.Constant(ir.IntType(32), 0) + if FuncAttr in Gen.structs: + result = self._HandleClassNewLlvm(Node, FuncAttr, module_sha1=_ctor_module_sha1) + if result is not None: + return result if ModulePath == 't': MethodResult_t = self._HandleMethodCallLlvm(Node) if MethodResult_t is not None: @@ -1272,13 +1275,7 @@ class ExprCallHandle(BaseHandle): if expected_type.width < val.type.width: return Gen.builder.trunc(val, expected_type) else: - if val.type.width == 1: - # i1 是布尔值,无符号语义,必须 zext - return Gen.builder.zext(val, expected_type, name="zext") - is_unsigned: bool = id(val) in Gen._unsigned_results - if is_unsigned: - return Gen.builder.zext(val, expected_type, name="zext") - return Gen.builder.sext(val, expected_type, name="sext") + return Gen.builder.zext(val, expected_type) if isinstance(val.type, ir.PointerType) and isinstance(expected_type, ir.IntType): if expected_type.width == 64: return Gen.builder.ptrtoint(val, expected_type) @@ -1631,14 +1628,7 @@ class ExprCallHandle(BaseHandle): return ArgVal if isinstance(TargetType, ir.IntType) and isinstance(ArgVal.type, ir.IntType): if ArgVal.type.width < TargetType.width: - if ArgVal.type.width == 1: - # i1 是布尔值,无符号语义,必须 zext - return Gen.builder.zext(ArgVal, TargetType, name=f"zext_{TypedefName}_cast") - # C cast 语义:源有符号 → sext;源无符号 → zext;目标符号性仅影响解释 - is_unsigned: bool = (Node.args and Gen._check_node_unsigned(Node.args[0])) or id(ArgVal) in Gen._unsigned_results - if is_unsigned: - return Gen.builder.zext(ArgVal, TargetType, name=f"zext_{TypedefName}_cast") - return Gen.builder.sext(ArgVal, TargetType, name=f"sext_{TypedefName}_cast") + return Gen.builder.zext(ArgVal, TargetType, name=f"zext_{TypedefName}_cast") elif ArgVal.type.width > TargetType.width: return Gen.builder.trunc(ArgVal, TargetType, name=f"trunc_{TypedefName}_cast") return ArgVal @@ -1767,15 +1757,7 @@ class ExprCallHandle(BaseHandle): if default_val.type != param_type: if isinstance(param_type, ir.IntType) and isinstance(default_val.type, ir.IntType): if default_val.type.width < param_type.width: - if default_val.type.width == 1: - # i1 是布尔值,无符号语义,必须 zext - default_val = Gen.builder.zext(default_val, param_type, name=f"zext_default_{i}") - else: - is_unsigned: bool = Gen._check_node_unsigned(default_node) or id(default_val) in Gen._unsigned_results - if is_unsigned: - default_val = Gen.builder.zext(default_val, param_type, name=f"zext_default_{i}") - else: - default_val = Gen.builder.sext(default_val, param_type, name=f"sext_default_{i}") + default_val = Gen.builder.zext(default_val, param_type, name=f"zext_default_{i}") elif default_val.type.width > param_type.width: default_val = Gen.builder.trunc(default_val, param_type, name=f"trunc_default_{i}") elif isinstance(param_type, ir.PointerType) and isinstance(default_val.type, ir.IntType): @@ -1844,16 +1826,7 @@ class ExprCallHandle(BaseHandle): elif isinstance(arg.type, ir.PointerType) and isinstance(param_type, ir.IntType): adjusted.append(Gen.builder.ptrtoint(arg, param_type)) elif isinstance(arg.type, ir.IntType) and arg.type.width < param_type.width: - if arg.type.width == 1: - # i1 是布尔值,无符号语义,必须 zext - adjusted.append(Gen.builder.zext(arg, param_type, name=f"zext_vararg_fixed_{i}")) - else: - arg_node = Node.args[i] if i < len(Node.args) else None - is_unsigned: bool = (arg_node is not None and Gen._check_node_unsigned(arg_node)) or id(arg) in Gen._unsigned_results - if is_unsigned: - adjusted.append(Gen.builder.zext(arg, param_type, name=f"zext_vararg_fixed_{i}")) - else: - adjusted.append(Gen.builder.sext(arg, param_type, name=f"sext_vararg_fixed_{i}")) + adjusted.append(Gen.builder.zext(arg, param_type)) elif isinstance(arg.type, ir.PointerType) and isinstance(param_type, ir.PointerType): adjusted.append(Gen.builder.bitcast(arg, param_type, name=f"cast_arg_{i}")) else: @@ -2024,23 +1997,6 @@ class ExprCallHandle(BaseHandle): else: # 跨模块基类 — 查找基类的 sha1 base_sha1 = struct_sha1_map.get(base_name) - # 回退:若 _struct_sha1_map 未命中(普通类导入时不填充), - # 扫描 temp/ 下所有 .pyi 查找包含该基类定义的文件 - if base_sha1 is None: - temp_dir = os.path.join(project_root, 'temp') - try: - pyi_files = os.listdir(temp_dir) - except OSError: - pyi_files = [] - for pyi_file in pyi_files: - if not pyi_file.endswith('.pyi'): - continue - candidate_sha1 = pyi_file[:-4] - candidate_map = load_pyi(candidate_sha1) - if candidate_map and base_name in candidate_map: - base_sha1 = candidate_sha1 - struct_sha1_map[base_name] = base_sha1 - break if base_sha1: base_methods, base_cvtable, base_novtable, _ = collect_class_methods(base_name, base_sha1, visited) if base_novtable: diff --git a/lib/core/Handles/HandlesReturn.py b/lib/core/Handles/HandlesReturn.py index ac57dac..be02744 100644 --- a/lib/core/Handles/HandlesReturn.py +++ b/lib/core/Handles/HandlesReturn.py @@ -45,15 +45,7 @@ class ReturnHandle(BaseHandle): if Val.type != ExpectedType: if isinstance(ExpectedType, ir.IntType) and isinstance(Val.type, ir.IntType): if Val.type.width < ExpectedType.width: - if Val.type.width == 1: - # i1 是布尔值,无符号语义,必须 zext - Val = Gen.builder.zext(Val, ExpectedType, name=f"zext_ret_{i}") - else: - is_unsigned: bool = Gen._check_node_unsigned(val) or id(Val) in Gen._unsigned_results - if is_unsigned: - Val = Gen.builder.zext(Val, ExpectedType, name=f"zext_ret_{i}") - else: - Val = Gen.builder.sext(Val, ExpectedType, name=f"sext_ret_{i}") + Val = Gen.builder.zext(Val, ExpectedType, name=f"zext_ret_{i}") elif Val.type.width > ExpectedType.width: Val = Gen.builder.trunc(Val, ExpectedType, name=f"trunc_ret_{i}") elif isinstance(ExpectedType, ir.PointerType) and isinstance(Val.type, ir.PointerType): @@ -115,15 +107,7 @@ class ReturnHandle(BaseHandle): result = Gen.builder.insert_value(result, Val, j, name=f"ret_field_{j}") elif isinstance(elem_type, ir.IntType) and isinstance(Val.type, ir.IntType): if Val.type.width < elem_type.width: - if Val.type.width == 1: - # i1 是布尔值,无符号语义,必须 zext - Val = Gen.builder.zext(Val, elem_type, name=f"zext_ret_{j}") - else: - is_unsigned: bool = (Node.value is not None and Gen._check_node_unsigned(Node.value)) or id(Val) in Gen._unsigned_results - if is_unsigned: - Val = Gen.builder.zext(Val, elem_type, name=f"zext_ret_{j}") - else: - Val = Gen.builder.sext(Val, elem_type, name=f"sext_ret_{j}") + Val = Gen.builder.zext(Val, elem_type, name=f"zext_ret_{j}") elif Val.type.width > elem_type.width: Val = Gen.builder.trunc(Val, elem_type, name=f"trunc_ret_{j}") result = Gen.builder.insert_value(result, Val, j, name=f"ret_field_{j}") diff --git a/lib/core/LLVMCG/BaseGen.py b/lib/core/LLVMCG/BaseGen.py index cd0b890..23e2309 100644 --- a/lib/core/LLVMCG/BaseGen.py +++ b/lib/core/LLVMCG/BaseGen.py @@ -292,6 +292,22 @@ class BaseGenMixin: return existing if clean_name in {'typedef', 'CType', 'CVolatile', 'CEnum', 'CUnion', 'CStruct', 'enum', 'REnum', 'renum', 'Void', 'void'}: return ir.IntType(8) + # typing.Any 是"任意类型"标记,应解析为 i8*(通用指针), + # 而非创建为 opaque 结构体(否则包含 Any 字段的结构体会变成 unsized)。 + if clean_name == 'Any': + return ir.IntType(8).as_pointer() + # t.CType 的基本类型子类(CInt/CChar/CSizeT/CLong/CFloat/CDouble 等, + # position 含 BASE 且 Size>0)有具体 LLVM 类型,应直接返回对应的 + # ir.IntType/ir.FloatType/ir.DoubleType,而非创建结构体。 + # _is_ctype_marker_name 对这些类型返回 False(不跳过),需要在此处拦截。 + _basic_llvm_type: ir.Type | None = self._try_resolve_ctype_basic(clean_name) + if _basic_llvm_type is not None: + return _basic_llvm_type + # t.CType 及其子类是"类型强转"标记,不应被编译为真实结构体。 + # 动态检查 t 模块中所有 CType 子类名(排除 CStruct/CEnum/CUnion/REnum 子类, + # 因为用户定义的结构体类继承自它们,需要被创建为结构体)。 + if self._is_ctype_marker_name(clean_name): + return ir.IntType(8) if self.SymbolTable: Entry: _CTypeInfo | None = self.SymbolTable.lookup(clean_name) if Entry and Entry.IsTypedef: @@ -409,8 +425,93 @@ class BaseGenMixin: pass return 0 # 标记为 typedef,但位宽为 0(非整数) + # t.CType 及其子类是"类型强转"标记,不应被创建为结构体。 + # 动态检查 t 模块中所有 CType 子类名(排除 CStruct/CEnum/CUnion/REnum 子类)。 + # 返回 0 标记为 typedef,使 _get_or_create_struct 走 typedef 路径返回 i8。 + if self._is_ctype_marker_name(name): + return 0 + return None + @staticmethod + def _is_ctype_marker_name(name: str) -> bool: + """检查名称是否是 t.CType 的"类型强转"标记子类名。 + + 只有 position 不含 BASE 的纯修饰符/标记类型(CPtr/CVolatile/CConst/ + CInline/CStatic/CExtern/CExport/CRegister/CAuto/_CTypedef/CTypeDefault 等) + 才应该跳过结构体创建。有 BASE position 的基本类型(CInt/CChar/CSizeT/ + CLong/CFloat/CDouble 等)有具体大小,应被正常解析为对应宽度的整数/浮点。 + + CStruct/CEnum/CUnion/REnum 的用户子类是合法结构体,需要被创建。 + + 注意:CTypeRegistry.GetClassByName 会跳过 CType 本身和 CTypeDefault, + 所以这里直接用 getattr(t, name) 检查 t 模块属性。 + + Returns: + True 如果 name 是 CType 标记子类名(应跳过结构体创建) + """ + if not name: + return False + # 去除可能的 SHA1 前缀(如 "abc123.CPtr" -> "CPtr") + short_name: str = name.split('.')[-1] if '.' in name else name + # 直接查 t 模块属性(CTypeRegistry._build 会跳过 CType/CTypeDefault/BigEndian/LittleEndian) + t_cls: Any = getattr(_t, short_name, None) + if not isinstance(t_cls, type) or not issubclass(t_cls, _t.CType): + return False + # 排除 CStruct/CEnum/CUnion/REnum 子类(它们是命名类型的基类, + # 用户定义的结构体继承自它们,需要被创建为结构体) + if issubclass(t_cls, (_t.CStruct, _t.CEnum, _t.REnum, _t.CUnion)): + return False + # 基本类型(position 含 BASE 且 Size > 0)有具体大小,不应跳过 + # (CInt→i32, CChar→i8, CSizeT→i64, CLong→i64, CFloat→f32 等) + # CVoid 虽含 BASE 但 Size=0,CType Size=None,仍需跳过 + if _t.CType.BASE in t_cls.position: + # 检查实例的 Size(类属性可能未设置,用实例获取) + try: + inst = t_cls() + size_val = getattr(inst, 'Size', None) + if size_val is not None and size_val > 0: + return False + except Exception: + pass + return True + + def _try_resolve_ctype_basic(self, name: str) -> ir.Type | None: + """尝试将 t.CType 的基本类型子类名解析为对应的 LLVM 基本类型。 + + 仅对 t 模块内的 CType 基本类型子类(CInt/CChar/CSizeT/CLong/CFloat/ + CDouble 等,即 position 含 BASE 且 Size>0)生效,返回对应的 + ir.IntType/ir.FloatType/ir.DoubleType。 + + CStruct/CEnum/CUnion/REnum 子类不在此处理(用户自定义结构体需要被 + 创建为结构体)。CVoid/CType/CPtr 等无 Size 或 Size=0 的类型也不在此 + 处理(应通过 _is_ctype_marker_name 跳过结构体创建)。 + + Returns: + 对应的 ir.Type,或 None 表示不是基本类型,需要继续走结构体创建路径。 + """ + if not name: + return None + short_name: str = name.split('.')[-1] if '.' in name else name + cls: Any = getattr(_t, short_name, None) + if not isinstance(cls, type) or not issubclass(cls, _t.CType): + return None + if issubclass(cls, (_t.CStruct, _t.CEnum, _t.REnum, _t.CUnion)): + return None + if _t.CType.BASE not in getattr(cls, 'position', frozenset()): + return None + try: + inst = cls() + size_val = getattr(inst, 'Size', None) + if size_val is None or size_val <= 0: + return None + except Exception: + return None + llvm_str: str | None = CTypeRegistry.NameToLLVM(short_name) + if not llvm_str: + return None + return self._type_str_to_llvm(llvm_str) + def _set_node_info(self, node: ast.AST, extra_info: str = "") -> None: if hasattr(node, 'lineno'): self._current_lineno = node.lineno diff --git a/regression_log.txt b/regression_log.txt deleted file mode 100644 index 5838da2..0000000 --- a/regression_log.txt +++ /dev/null @@ -1 +0,0 @@ -====================================================================== diff --git a/thistest/App/main.py b/thistest/App/main.py index 0bf986d..bbff941 100644 --- a/thistest/App/main.py +++ b/thistest/App/main.py @@ -12,14 +12,22 @@ pagecode: t.CDefine = 65001 def add(x: int, y: int): return x + y def minus(x: int, y: int): return x - y -@t.CExport -def main() -> int: + +def main(argc: int, argv: t.CArray[str]) -> int: w32cmd.SetConsoleOutputCP(pagecode) w32cmd.SetConsoleCP(pagecode) print("你好,世界") # this.this() hello.helloworld() + #print(argc) + #print(t.CUInt64T(argv)) + #stdio.printf("A: %s", (t.CChar | t.CPtr)(t.CUInt64T(argv))) + #for i in argv: + # stdio.printf("%s", i) + + print("hello world") + #p: bytes = stdlib.malloc(1024) #hub = memhub.MemSlab(p, 1024) #p1: bytes = hub.alloc(10) diff --git a/thistest/output/6166aecc7fa7ad65.deps.json b/thistest/output/6166aecc7fa7ad65.deps.json deleted file mode 100644 index 4514431..0000000 --- a/thistest/output/6166aecc7fa7ad65.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"atom": "271ea3decb810db2", "viperstring": "3624cfde3c5cb6cb", "memhub": "47775d5e50909338", "hello": "6166aecc7fa7ad65", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "main": "92e17df16c98b2b5", "string": "9474791561654346", "this": "a7bc8c01684c0001", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/thistest/output/_shared_sym_includes.pickle b/thistest/output/_shared_sym_includes.pickle deleted file mode 100644 index 1642b0a40a3f2f04ac1ccfc5c88dcbdde0eec8ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 619292 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 diff --git a/thistest/output/a7bc8c01684c0001.deps.json b/thistest/output/a7bc8c01684c0001.deps.json deleted file mode 100644 index 4514431..0000000 --- a/thistest/output/a7bc8c01684c0001.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"atom": "271ea3decb810db2", "viperstring": "3624cfde3c5cb6cb", "memhub": "47775d5e50909338", "hello": "6166aecc7fa7ad65", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "main": "92e17df16c98b2b5", "string": "9474791561654346", "this": "a7bc8c01684c0001", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/thistest/output/92e17df16c98b2b5.deps.json b/thistest/output/d53285adc924cc78.deps.json similarity index 65% rename from thistest/output/92e17df16c98b2b5.deps.json rename to thistest/output/d53285adc924cc78.deps.json index d35aafe..e2c9e8a 100644 --- a/thistest/output/92e17df16c98b2b5.deps.json +++ b/thistest/output/d53285adc924cc78.deps.json @@ -1 +1 @@ -{"atom": "271ea3decb810db2", "viperstring": "3624cfde3c5cb6cb", "memhub": "47775d5e50909338", "hello": "6166aecc7fa7ad65", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "this": "a7bc8c01684c0001", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "viperstring.string": "9474791561654346"} \ No newline at end of file +{"atom": "271ea3decb810db2", "viperstring": "3624cfde3c5cb6cb", "memhub": "47775d5e50909338", "hello": "6166aecc7fa7ad65", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "string": "85a6b24688da4405", "stdlib": "90c53dd6db8d41cf", "this": "a7bc8c01684c0001", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "viperstring.string": "85a6b24688da4405"} \ No newline at end of file diff --git a/thistest/temp/9474791561654346.pyi b/thistest/temp/85a6b24688da4405.pyi similarity index 100% rename from thistest/temp/9474791561654346.pyi rename to thistest/temp/85a6b24688da4405.pyi diff --git a/thistest/temp/_phase1_manifest.json b/thistest/temp/_phase1_manifest.json index e82ef48..5395c01 100644 --- a/thistest/temp/_phase1_manifest.json +++ b/thistest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\thistest\\App\\main.py": {"sha1": "92e17df16c98b2b5", "mtime": 1784517002.6633048, "size": 1149}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hello.py": {"sha1": "6166aecc7fa7ad65", "mtime": 1784387694.4150121, "size": 72}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "47775d5e50909338", "mtime": 1784464283.860502, "size": 19750}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784464295.903657, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "9474791561654346", "mtime": 1784387475.6951904, "size": 10395}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\this.py": {"sha1": "a7bc8c01684c0001", "mtime": 1784109007.4091208, "size": 1345}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperstring.py": {"sha1": "3624cfde3c5cb6cb", "mtime": 1778930749.052393, "size": 23}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\thistest\\App\\main.py": {"sha1": "d53285adc924cc78", "mtime": 1784536674.4167335, "size": 1361}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hello.py": {"sha1": "6166aecc7fa7ad65", "mtime": 1784387694.4150121, "size": 72}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "47775d5e50909338", "mtime": 1784464283.860502, "size": 19750}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784464295.903657, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "85a6b24688da4405", "mtime": 1784518539.0575962, "size": 10452}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\this.py": {"sha1": "a7bc8c01684c0001", "mtime": 1784109007.4091208, "size": 1345}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperstring.py": {"sha1": "3624cfde3c5cb6cb", "mtime": 1778930749.052393, "size": 23}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/thistest/temp/_sha1_map.txt b/thistest/temp/_sha1_map.txt index d95941c..f6a03b6 100644 --- a/thistest/temp/_sha1_map.txt +++ b/thistest/temp/_sha1_map.txt @@ -4,10 +4,10 @@ 6166aecc7fa7ad65:includes/hello.py 6f62fe05c5ea1ceb:includes/stdio.py 7e529fe7a078cfef:includes/w32\win32base.py +85a6b24688da4405:includes/string.py 90c53dd6db8d41cf:includes/stdlib.py -92e17df16c98b2b5:main.py -9474791561654346:includes/string.py a7bc8c01684c0001:includes/this.py bbdf3bbd4c3bc28c:includes/w32\win32console.py c9f4be41ca1cc2b4:includes/viperio.py +d53285adc924cc78:main.py f5522571bcce7bcb:includes/stdint.py diff --git a/thistest/temp/92e17df16c98b2b5.doc.json b/thistest/temp/d53285adc924cc78.doc.json similarity index 100% rename from thistest/temp/92e17df16c98b2b5.doc.json rename to thistest/temp/d53285adc924cc78.doc.json diff --git a/thistest/temp/92e17df16c98b2b5.pyi b/thistest/temp/d53285adc924cc78.pyi similarity index 85% rename from thistest/temp/92e17df16c98b2b5.pyi rename to thistest/temp/d53285adc924cc78.pyi index 3f5c0fd..aa34301 100644 --- a/thistest/temp/92e17df16c98b2b5.pyi +++ b/thistest/temp/d53285adc924cc78.pyi @@ -19,5 +19,4 @@ def add(x: int, y: int) -> t.CInt: pass def minus(x: int, y: int) -> t.CInt: pass -@t.CExport -def main() -> int: pass +def main(argc: int, argv: t.CArray[str]) -> int: pass