Nuitka-winsvc 2.4.8__cp311-cp311-win_amd64.whl → 2.4.11__cp311-cp311-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of Nuitka-winsvc might be problematic. Click here for more details.
- {Nuitka_winsvc-2.4.8.dist-info → Nuitka_winsvc-2.4.11.dist-info}/METADATA +1 -1
- {Nuitka_winsvc-2.4.8.dist-info → Nuitka_winsvc-2.4.11.dist-info}/RECORD +29 -29
- {Nuitka_winsvc-2.4.8.dist-info → Nuitka_winsvc-2.4.11.dist-info}/WHEEL +1 -1
- nuitka/OptionParsing.py +1 -1
- nuitka/Options.py +17 -7
- nuitka/Version.py +1 -1
- nuitka/build/SconsCaching.py +8 -2
- nuitka/build/SconsCompilerSettings.py +3 -3
- nuitka/build/static_src/CompiledMethodType.c +4 -1
- nuitka/build/static_src/HelpersAllocator.c +4 -4
- nuitka/build/static_src/HelpersComparisonEqUtils.c +1 -0
- nuitka/build/static_src/HelpersConstantsBlob.c +6 -2
- nuitka/build/static_src/HelpersMatching.c +1 -1
- nuitka/build/static_src/MainProgram.c +7 -2
- nuitka/freezer/DependsExe.py +8 -1
- nuitka/freezer/IncludedDataFiles.py +4 -3
- nuitka/freezer/IncludedEntryPoints.py +3 -2
- nuitka/freezer/Standalone.py +4 -0
- nuitka/importing/Recursion.py +8 -0
- nuitka/plugins/standard/TkinterPlugin.py +0 -56
- nuitka/plugins/standard/standard.nuitka-package.config.yml +164 -11
- nuitka/tools/testing/Common.py +1 -1
- nuitka/utils/FileOperations.py +26 -17
- nuitka/utils/Utils.py +16 -0
- {Nuitka_winsvc-2.4.8.data → Nuitka_winsvc-2.4.11.data}/scripts/nuitka-run.cmd +0 -0
- {Nuitka_winsvc-2.4.8.data → Nuitka_winsvc-2.4.11.data}/scripts/nuitka.cmd +0 -0
- {Nuitka_winsvc-2.4.8.dist-info → Nuitka_winsvc-2.4.11.dist-info}/LICENSE.txt +0 -0
- {Nuitka_winsvc-2.4.8.dist-info → Nuitka_winsvc-2.4.11.dist-info}/entry_points.txt +0 -0
- {Nuitka_winsvc-2.4.8.dist-info → Nuitka_winsvc-2.4.11.dist-info}/top_level.txt +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
Nuitka_winsvc-2.4.
|
|
2
|
-
Nuitka_winsvc-2.4.
|
|
1
|
+
Nuitka_winsvc-2.4.11.data/scripts/nuitka-run.cmd,sha256=ymcs9S9XtjCwZ7-oOj1gLisLaIj8uIxn-1mb0mTxWUI,924
|
|
2
|
+
Nuitka_winsvc-2.4.11.data/scripts/nuitka.cmd,sha256=G-3yCOmURvmaYtciOLW4cMRGEcutzcsea4qDJqfezg0,1061
|
|
3
3
|
nuitka/Builtins.py,sha256=IPBD00YlX9eNfKyKxyGRukVmwtoiaeJ4YLNdm1LoLOo,7560
|
|
4
4
|
nuitka/BytecodeCaching.py,sha256=KFVx1wDKEG8bydgerI6k2YK6VXIZLmTfMxgZmUhkBWo,5787
|
|
5
5
|
nuitka/Bytecodes.py,sha256=BFKfgzCHUb8-qs1VZcjaKpCwBMt7UKgkT8POEsYljLQ,3891
|
|
@@ -9,8 +9,8 @@ nuitka/Errors.py,sha256=Yw8-RTf7SEel-0ddEQAcvM9MwF6Es-l1X9wOkPRuEQg,2570
|
|
|
9
9
|
nuitka/HardImportRegistry.py,sha256=a6kBsQICBQdxcnrJ-dArbUtMlYFNvlA32MHyvgpnlJg,12050
|
|
10
10
|
nuitka/MainControl.py,sha256=hZ3_6zYI01j_xIUMONklCMxhnZR6ahJk7JaR_SWbibY,39044
|
|
11
11
|
nuitka/ModuleRegistry.py,sha256=z1kdwF6DABgfu06I_KjoUmNHOx4PYd0rQpUwNYp92Fk,9122
|
|
12
|
-
nuitka/OptionParsing.py,sha256=
|
|
13
|
-
nuitka/Options.py,sha256=
|
|
12
|
+
nuitka/OptionParsing.py,sha256=UFzLADkrM-38ZP0eKHXW2zIe-ai6M3lhlFoGds21SrI,65673
|
|
13
|
+
nuitka/Options.py,sha256=_T2JCrJX23zyFDuAp8XBb7Ui9gZE8ZoWJvx3ZLRf2a0,81849
|
|
14
14
|
nuitka/OutputDirectories.py,sha256=sBX7_B7QogcKTHlTRY2Bfv7O9oi4EpYB2EcXyNRTiXM,5560
|
|
15
15
|
nuitka/PostProcessing.py,sha256=VPZ6lBsTvMvLEHsWxOZw6ewo9gVEUF8C5LYZL5N04_Q,15373
|
|
16
16
|
nuitka/Progress.py,sha256=aAbGYqGtLuMsJ0_VdrllglCvaK2IP_ySR-cq-gmPK70,6855
|
|
@@ -22,7 +22,7 @@ nuitka/SourceCodeReferences.py,sha256=quGcd9Kg3FjYwsSDDv49MWi_Yec2AurRp-cVspo5qq
|
|
|
22
22
|
nuitka/Tracing.py,sha256=OVxuhIVm78EWZtY9cl031a7DCei6uTbFOi2LBrZDiOY,13558
|
|
23
23
|
nuitka/TreeXML.py,sha256=KGsCEB9Tu1HUNQd10AMWoYX82Qxso_DUfoiet4AiRoc,3654
|
|
24
24
|
nuitka/Variables.py,sha256=53u-p0l58lrBg8nNSYd5DjR3AOGezMayUM7C05vANVM,15470
|
|
25
|
-
nuitka/Version.py,sha256=
|
|
25
|
+
nuitka/Version.py,sha256=j3ZHbxNiw8TwSricI--IjOmKcUZOwacI2cughKYQbWQ,2467
|
|
26
26
|
nuitka/__init__.py,sha256=TkW50aBd9haxBi-DXHM71oVA31d5oPeL06ZwuBSkPqo,865
|
|
27
27
|
nuitka/__main__.py,sha256=dp8HcyiviRrEVm1OWjffOIy0DvkT4iW8R9wCjGpxwT8,7810
|
|
28
28
|
nuitka/__past__.py,sha256=c9HaNn4DHQU3x1ip7aVSzdQqNAzDojYmr2KfMHbqmSQ,5739
|
|
@@ -30,8 +30,8 @@ nuitka/build/Backend.scons,sha256=C7gVOIVLJygXlBVmjlF4maF9l_PPk8bUI1TKu9ECmpo,36
|
|
|
30
30
|
nuitka/build/CCompilerVersion.scons,sha256=Rs68LndV5ItFvA6W1_aEE9fXumAMXjUfP35kE1ma6Gg,8562
|
|
31
31
|
nuitka/build/DataComposerInterface.py,sha256=xWrgCLG6PXoZsFjuTxc0f4XCSu80CDwYXmLJevp9VTw,3486
|
|
32
32
|
nuitka/build/Onefile.scons,sha256=bGIq7NAR81aB_Rhnwn7vdMgjFF0E6BggGoUyf8TAOXY,17908
|
|
33
|
-
nuitka/build/SconsCaching.py,sha256=
|
|
34
|
-
nuitka/build/SconsCompilerSettings.py,sha256
|
|
33
|
+
nuitka/build/SconsCaching.py,sha256=p6FLuSnDIiYz9Ttnx8qsDcYpKM2tcCzHKSUX3cXQUGk,15850
|
|
34
|
+
nuitka/build/SconsCompilerSettings.py,sha256=-799ddhRZVErefMcPNLNGlX6oIWfTA8RGD--n5cde84,36468
|
|
35
35
|
nuitka/build/SconsHacks.py,sha256=KvcjESBRMRcwAWZN5S09JbZNs9WAc7HvPXIiRRgJE0c,5802
|
|
36
36
|
nuitka/build/SconsInterface.py,sha256=LmudNBGDrOLY1aRy8md6XBq-6hh9gMvRYf8HHGRMms4,18650
|
|
37
37
|
nuitka/build/SconsProgress.py,sha256=Zc0Gp2meURGXDK9RMcTb3MBH0wRW51625__y7u8fFa8,2703
|
|
@@ -423,8 +423,8 @@ nuitka/build/static_src/CompiledFrameType.c,sha256=RntldgQBSFRCU6FdXGATPL4B_AJ8M
|
|
|
423
423
|
nuitka/build/static_src/CompiledFunctionType.c,sha256=YK5y4QhOb6aIRbCyNg2cdh83UAPO86DNlIeJEIHw-gY,113607
|
|
424
424
|
nuitka/build/static_src/CompiledGeneratorType.c,sha256=cwM9_yu6IRPxQMqKcg3Thia8TQVXf7HaKe4fbPbMPCk,67879
|
|
425
425
|
nuitka/build/static_src/CompiledGeneratorTypeUncompiledIntegration.c,sha256=73uz7jzMoyCjnMWcHplbK3WTZFpdIcNTuAM64MaUWHg,56209
|
|
426
|
-
nuitka/build/static_src/CompiledMethodType.c,sha256=
|
|
427
|
-
nuitka/build/static_src/HelpersAllocator.c,sha256
|
|
426
|
+
nuitka/build/static_src/CompiledMethodType.c,sha256=fZP-ynQN0vBHT_1Bddo6zzgLp3F5sAWscjCt-LN1VOs,22649
|
|
427
|
+
nuitka/build/static_src/HelpersAllocator.c,sha256=pEW_kxHcsSVpU_0oP_9fstTfwbGRMs-FGFaEad7fzK4,20746
|
|
428
428
|
nuitka/build/static_src/HelpersAttributes.c,sha256=yjGvAz1jvp6XuDk1EnorNmP3M3cavFWYh8ylYDOFK5Q,37636
|
|
429
429
|
nuitka/build/static_src/HelpersBuiltin.c,sha256=ojXzdmZXbHH4suCrQieQhCm26CxyrUP9ZnKbsL218e0,24033
|
|
430
430
|
nuitka/build/static_src/HelpersBuiltinTypeMethods.c,sha256=8KT1Naoot64WipECnnE9iGxFsy4QdEKlLRidJYcxrdI,114017
|
|
@@ -434,14 +434,14 @@ nuitka/build/static_src/HelpersCallingGenerated.c,sha256=9nHqNa17Smhc4ZdwWQkgT9v
|
|
|
434
434
|
nuitka/build/static_src/HelpersChecksumTools.c,sha256=DLJWSvRYuC-hU7coVPqU6r3EljoCh-rJNM8YecFUnbE,2065
|
|
435
435
|
nuitka/build/static_src/HelpersClasses.c,sha256=UiATEtqIy03LSG1PKpjfZjXdmxOOIE6FKcSJx_orw90,3051
|
|
436
436
|
nuitka/build/static_src/HelpersComparisonEq.c,sha256=_7wR19FvapQ9BzggLTw7h4PGgTHyeb406lhpIy5m37M,322180
|
|
437
|
-
nuitka/build/static_src/HelpersComparisonEqUtils.c,sha256=
|
|
437
|
+
nuitka/build/static_src/HelpersComparisonEqUtils.c,sha256=vLG_xfzyMKOziBUIdPT7IJOdvMm-08ej-iv5pUuOAaU,4864
|
|
438
438
|
nuitka/build/static_src/HelpersComparisonGe.c,sha256=_84HNwYbNiTqdyvg9i1Tqyp_UwwLEQ2hzRt__KvNgDY,317300
|
|
439
439
|
nuitka/build/static_src/HelpersComparisonGt.c,sha256=g8XBKKuX2-eR7gNhS7YDi2_dpRzpASUEHi_BB916Brg,316702
|
|
440
440
|
nuitka/build/static_src/HelpersComparisonLe.c,sha256=NfBvAILavbH-u0QT3ByjS_K_Kd0OsKh-36Ar5cYsE0w,320514
|
|
441
441
|
nuitka/build/static_src/HelpersComparisonLt.c,sha256=tTYmfmy0XM6FqUvHwkiILX62At7GTyDu_gruTBnHAd8,319916
|
|
442
442
|
nuitka/build/static_src/HelpersComparisonNe.c,sha256=-MaZEqvl-ShUWOeFOn9V63L0nF3C0Qmi2YJ97ES4h7U,318928
|
|
443
443
|
nuitka/build/static_src/HelpersConsole.c,sha256=qZekWa9oHODPOPPgEzvBeYDQgS5-YLbs1Dt1YY-LRwg,3864
|
|
444
|
-
nuitka/build/static_src/HelpersConstantsBlob.c,sha256=
|
|
444
|
+
nuitka/build/static_src/HelpersConstantsBlob.c,sha256=8-PVEZRtI8qdP-rWavA2J4qOpkPUKwjA-lDqPHC2B0w,35952
|
|
445
445
|
nuitka/build/static_src/HelpersDeepcopy.c,sha256=PRgzmXzB_pf_ie6g0GDNTfJSBwQVCRf-KrUNSdiaT7w,20361
|
|
446
446
|
nuitka/build/static_src/HelpersDictionaries.c,sha256=U54zFBw693bp9mxdR01Sa9seYBJoPz339qIZs_I-PO8,40258
|
|
447
447
|
nuitka/build/static_src/HelpersDictionariesGenerated.c,sha256=cwPsX9pZ-eLZuqtIoRguN_XBBUp7MCU6q2-IdAYCxDI,27988
|
|
@@ -459,7 +459,7 @@ nuitka/build/static_src/HelpersJitSources.c,sha256=0vNnbQYGnmSqE7Uj3SkLNbqKFDxY5
|
|
|
459
459
|
nuitka/build/static_src/HelpersLists.c,sha256=j53DiTeduWJ9Gc7QtHdExCPLxu3LeW8ydgVPKfFrL9w,21632
|
|
460
460
|
nuitka/build/static_src/HelpersListsGenerated.c,sha256=6rbjOglwf_xlKEUgJOH-tC6mUHDhS-PV8fBikoohYwQ,14316
|
|
461
461
|
nuitka/build/static_src/HelpersMappings.c,sha256=f3s_pCQGKeMiWD7AmdZEXGgLRvT3r-Fzgos2Yr9Gqvg,1669
|
|
462
|
-
nuitka/build/static_src/HelpersMatching.c,sha256=
|
|
462
|
+
nuitka/build/static_src/HelpersMatching.c,sha256=G9CYDr609bFe4EKNw8el14AxRggXeCTQMSY0cwyr81E,6235
|
|
463
463
|
nuitka/build/static_src/HelpersOperationBinaryAdd.c,sha256=WtBB3PsJ1VYu_IEhRHPhpAUy_Q9DQzrPNje7_xKrOu4,183706
|
|
464
464
|
nuitka/build/static_src/HelpersOperationBinaryAddUtils.c,sha256=NESdxee6EkQWAuccUalFeCkAub4W2G9LvZLypJc0R6c,19943
|
|
465
465
|
nuitka/build/static_src/HelpersOperationBinaryBitand.c,sha256=iHZm_xT3a2Gluz_RG0zMqbdOWVHEgZequA_MNaBlfHY,78269
|
|
@@ -505,7 +505,7 @@ nuitka/build/static_src/HelpersStrings.c,sha256=-WLwXGcKdErdMLNNPT8seMdm9LOTLW2o
|
|
|
505
505
|
nuitka/build/static_src/HelpersTuples.c,sha256=9yVThC0PIcHYadFLyPdf16Bs204TmE2gzTClKClvM8w,4481
|
|
506
506
|
nuitka/build/static_src/HelpersTypes.c,sha256=vpGmy_oIY-Q19aSSsaYMur5orvkCWsL5rBP6BJ1OdXg,6916
|
|
507
507
|
nuitka/build/static_src/InspectPatcher.c,sha256=mQ0U_CyOC8I06X7DJ4qeDimFEljb2WHngB-Kf-qDwQ0,14752
|
|
508
|
-
nuitka/build/static_src/MainProgram.c,sha256=
|
|
508
|
+
nuitka/build/static_src/MainProgram.c,sha256=A14ydsmyjnyd95HGEM2X2xi9HA-OA13H-KLNWz4Wz5k,57590
|
|
509
509
|
nuitka/build/static_src/MetaPathBasedLoader.c,sha256=5vQfHpj84_fIb5grJpvVyepOv9706mARJsBVviwsXhY,67088
|
|
510
510
|
nuitka/build/static_src/MetaPathBasedLoaderImportlibMetadataDistribution.c,sha256=Ja17tBwGgt6jVF8Hr8Wvhx0NKarqJ6IL7d149latRR0,5082
|
|
511
511
|
nuitka/build/static_src/MetaPathBasedLoaderResourceReader.c,sha256=K5zaC-z7r47DZiQbn4-aYvmm0AEYd3hCAeXw8Xtw9ew,6651
|
|
@@ -647,23 +647,23 @@ nuitka/distutils/__init__.py,sha256=TkW50aBd9haxBi-DXHM71oVA31d5oPeL06ZwuBSkPqo,
|
|
|
647
647
|
nuitka/finalizations/Finalization.py,sha256=NE7mn3W5PzgCKXTHrptcztVG7EgXwMVM9bYC58-PhfI,1258
|
|
648
648
|
nuitka/finalizations/FinalizeMarkups.py,sha256=vjhI4fVEAglPb_z-e6YtTzgVSBpt5R2NQUC2mbaQx7o,5465
|
|
649
649
|
nuitka/finalizations/__init__.py,sha256=TkW50aBd9haxBi-DXHM71oVA31d5oPeL06ZwuBSkPqo,865
|
|
650
|
-
nuitka/freezer/DependsExe.py,sha256=
|
|
650
|
+
nuitka/freezer/DependsExe.py,sha256=WN-VORHEs7-jDy62dWmUqOxk6Rfg7iXCr3TplUTy7l8,8258
|
|
651
651
|
nuitka/freezer/DllDependenciesCommon.py,sha256=uZkJ4tpvzZ_vHDud0sOuI-GiqWu0R-Y0w64uqKrmgxE,3268
|
|
652
652
|
nuitka/freezer/DllDependenciesMacOS.py,sha256=zy2mjYgvZnxfh1vXxMJdarQGfPIRc6VdxIdTt64FajU,15590
|
|
653
653
|
nuitka/freezer/DllDependenciesPosix.py,sha256=FKzKDuVAViqI00CfADzqgYAJZqB416VaSS-MtApjjJs,7468
|
|
654
654
|
nuitka/freezer/DllDependenciesWin32.py,sha256=K5_NGi_tl8_Oky9T198YlkbFjrPylzFPe7W-3kVfbZU,6837
|
|
655
655
|
nuitka/freezer/ImportDetection.py,sha256=zJtJk-8rmHW-BngN5W6WPhQu6vHLsX9nbDSysytp_0k,11999
|
|
656
|
-
nuitka/freezer/IncludedDataFiles.py,sha256=
|
|
657
|
-
nuitka/freezer/IncludedEntryPoints.py,sha256=
|
|
656
|
+
nuitka/freezer/IncludedDataFiles.py,sha256=EwZpwn9qX1gCnyjt9KmnO8vMLSffbdufj12_He8kMiA,19801
|
|
657
|
+
nuitka/freezer/IncludedEntryPoints.py,sha256=6BtJZt-olpVCtw9Jdg1mu2-UsfZcqWgrCSbr5UWxa3I,12162
|
|
658
658
|
nuitka/freezer/Onefile.py,sha256=GMEQysedmlLyn2sSkPrId13RY1sNY3n87qEn7LVCd7Y,10551
|
|
659
|
-
nuitka/freezer/Standalone.py,sha256=
|
|
659
|
+
nuitka/freezer/Standalone.py,sha256=sYgXFr9yI5QcB3ovO2pvwsxScD7EYbhqfrjmruEpcsk,13284
|
|
660
660
|
nuitka/freezer/__init__.py,sha256=TkW50aBd9haxBi-DXHM71oVA31d5oPeL06ZwuBSkPqo,865
|
|
661
661
|
nuitka/importing/IgnoreListing.py,sha256=sDR37R5N1zgqA92G0GxcXJf_b-H4eLMeinYpUu1c4Qs,11040
|
|
662
662
|
nuitka/importing/ImportCache.py,sha256=qyg3yHj6lepcy1hgLpZTWL7CUpDvMlsp2XoZxwgTI3Y,2989
|
|
663
663
|
nuitka/importing/ImportResolving.py,sha256=ptblxaLqlDm-YRmi3w2UaCsdtnhtsuxNdaR103UtqfA,7957
|
|
664
664
|
nuitka/importing/Importing.py,sha256=zoCer8D4xoHxoNn8GhwHisN5TKPFetNvP6jothoSCd0,33809
|
|
665
665
|
nuitka/importing/PreloadedPackages.py,sha256=VHlzoXRgWHu1tOX-06mNa_qXW-llkPSz4ZQZnU1UDo4,4869
|
|
666
|
-
nuitka/importing/Recursion.py,sha256=
|
|
666
|
+
nuitka/importing/Recursion.py,sha256=z7bJlbNAK1D356l9uUbB05md6Ix6H-zACjfj8Qdpl54,19317
|
|
667
667
|
nuitka/importing/StandardLibrary.py,sha256=HIZLeSUf1dc-5_KTbOUIGV7Ms0H-r1Kicswnqb4DWGA,12918
|
|
668
668
|
nuitka/importing/__init__.py,sha256=TkW50aBd9haxBi-DXHM71oVA31d5oPeL06ZwuBSkPqo,865
|
|
669
669
|
nuitka/nodes/AsyncgenNodes.py,sha256=GxcHEzw4Gl3-3pashdjPnvnlE9hY23iN0wrFQv3tcwk,3670
|
|
@@ -803,13 +803,13 @@ nuitka/plugins/standard/PySidePyQtPlugin.py,sha256=3b56_0QLA_QHZngfzbdHX0DwqhTHA
|
|
|
803
803
|
nuitka/plugins/standard/PywebViewPlugin.py,sha256=CjFFrY0OxYGd845S7xA6Imy46Jk21SZlnwO0NBJKFVQ,3020
|
|
804
804
|
nuitka/plugins/standard/SpacyPlugin.py,sha256=aVek-cDsAMX__qVrJpCsx-zdc1-MSf5TJWfJ0G9ZLFw,5173
|
|
805
805
|
nuitka/plugins/standard/TensorflowPlugin.py,sha256=MPcLVye9_gDiU_lWnhNdYIeKkUGjYzjCjc5UV_XNP3E,1194
|
|
806
|
-
nuitka/plugins/standard/TkinterPlugin.py,sha256=
|
|
806
|
+
nuitka/plugins/standard/TkinterPlugin.py,sha256=b0CO1HOilWOmgMLGs72IRmN51DEP9shoOQpRfupv0M4,11939
|
|
807
807
|
nuitka/plugins/standard/TorchPlugin.py,sha256=oFyDyz5qfWwRl6JUS-7WAReDF4TazgQQH52xq2J7zj8,1174
|
|
808
808
|
nuitka/plugins/standard/TransformersPlugin.py,sha256=6Ex9lNg5OupnXhFPKq5ozDOikIbE8GhlH5LUxTKfULg,12838
|
|
809
809
|
nuitka/plugins/standard/TrioPlugin.py,sha256=fIz_UTQfwBnl6MY4-XI4eKHPPsMeksPWYjnJU10mOb8,1107
|
|
810
810
|
nuitka/plugins/standard/UpxPlugin.py,sha256=1I3WouiEmKQAvTkzhgmJ2FRjDKHC0oH9onENntmFphg,5668
|
|
811
811
|
nuitka/plugins/standard/__init__.py,sha256=TkW50aBd9haxBi-DXHM71oVA31d5oPeL06ZwuBSkPqo,865
|
|
812
|
-
nuitka/plugins/standard/standard.nuitka-package.config.yml,sha256=
|
|
812
|
+
nuitka/plugins/standard/standard.nuitka-package.config.yml,sha256=H7cWvy2bZGkf_rCmnQq6lTkKD6XS7Auv4t_9cxLQql0,260634
|
|
813
813
|
nuitka/plugins/standard/stdlib2.nuitka-package.config.yml,sha256=DRazC20zLXbc71ZMRu9kEA8N4Xe8Iry2sHNsUlbx4FE,2357
|
|
814
814
|
nuitka/plugins/standard/stdlib3.nuitka-package.config.yml,sha256=scSfWrwREBDcZhG-ehdw1ZQeI-YoYby-oIQGjIdJlg8,13646
|
|
815
815
|
nuitka/plugins/standard/DillPlugin/DillPlugin.c,sha256=RbyX_UPvVZ00nN2bnIBVFoZ8xSZZ5YFJqVB6Qwg9GSo,1688
|
|
@@ -858,7 +858,7 @@ nuitka/tools/specialize/Common.py,sha256=HFjFyVl1rwOwM9pfyA7Ns76t-v3zkIThgOHhkbb
|
|
|
858
858
|
nuitka/tools/specialize/SpecializeC.py,sha256=QW217C0KRsFs7foSBaqi6auO-tSkeDjR1jk5OFvw1rg,39747
|
|
859
859
|
nuitka/tools/specialize/SpecializePython.py,sha256=KVQzBx7fpeWG_TtgVLgvLL1QOwRriee0X1kwlb4B-U4,37080
|
|
860
860
|
nuitka/tools/specialize/__init__.py,sha256=TkW50aBd9haxBi-DXHM71oVA31d5oPeL06ZwuBSkPqo,865
|
|
861
|
-
nuitka/tools/testing/Common.py,sha256=
|
|
861
|
+
nuitka/tools/testing/Common.py,sha256=a9y0ycQ_5I0vqRM1YVKDebSoVE_-CTh-5KjMDKWfl3I,57434
|
|
862
862
|
nuitka/tools/testing/Constructs.py,sha256=zHyVi7g3Gn3kLKvZW_OGFrskf5OIvCf7nK1GX2sJXy4,1516
|
|
863
863
|
nuitka/tools/testing/OutputComparison.py,sha256=WquPChaxgx1wyuP_9nB0v4_zH1QnEtZEb0k40f5s60k,10129
|
|
864
864
|
nuitka/tools/testing/Pythons.py,sha256=ydchEs7aFNwYq9KT8ni1S3y55IRUSMqGOCriwkuacw4,1310
|
|
@@ -921,7 +921,7 @@ nuitka/utils/CommandLineOptions.py,sha256=eUc6cRetHxL07xppAn9MlWcSEUuEDyp6tJ3ihg
|
|
|
921
921
|
nuitka/utils/Distributions.py,sha256=FLe2NgLElmU1Y2sUP6E3l0EjrKZ6KB3qahq6vFOXEVM,16874
|
|
922
922
|
nuitka/utils/Download.py,sha256=yOTdRU2EvXgs6a149mHOhv2TL6gt38Ep2rb965zFfiE,6714
|
|
923
923
|
nuitka/utils/Execution.py,sha256=qo1yojRME2Ilgntle5RMUZnR7CVptdEUNr7jXD2wBwc,13799
|
|
924
|
-
nuitka/utils/FileOperations.py,sha256=
|
|
924
|
+
nuitka/utils/FileOperations.py,sha256=zERUXBHv4kQW04Zxz9nOLOiSmdeonbp57RntLkZFIBE,44602
|
|
925
925
|
nuitka/utils/Hashing.py,sha256=vOFVzPNqAJw7NNZ1Hxe0rllnKO-HGwd6n5N3R_2WgQM,3753
|
|
926
926
|
nuitka/utils/Images.py,sha256=HitRj3qvpRXs2hV3V20cavcc2YZZNiyo5KawtcUCMTs,2547
|
|
927
927
|
nuitka/utils/Importing.py,sha256=rVJ7L35ShEwJy_Is-tnYwn11BvZbZTzrVFTehWV4WI4,10843
|
|
@@ -941,14 +941,14 @@ nuitka/utils/SlotMetaClasses.py,sha256=lVJokq-0XqDaNHTt9rfE_khZCQSi_BWMfDDwdwudw
|
|
|
941
941
|
nuitka/utils/StaticLibraries.py,sha256=KPSm7zcFljGThkPpAykTfaeqIouBD8kexAKVR2gIiuM,6582
|
|
942
942
|
nuitka/utils/ThreadedExecutor.py,sha256=MeByXD8Rn56zdFHta8gYfn7vAgvv13R1vYsJQUAhEGY,2634
|
|
943
943
|
nuitka/utils/Timing.py,sha256=-2IKhHHg-zoW76ue71SuItJO3NUncDuZABdNO1pllIc,2816
|
|
944
|
-
nuitka/utils/Utils.py,sha256=
|
|
944
|
+
nuitka/utils/Utils.py,sha256=1hs6G2FtaupTt32O_a097coDmMtJvRkc1gcmncPQBMw,13677
|
|
945
945
|
nuitka/utils/WindowsFileUsage.py,sha256=S6zm_4JQzaSyVmOoLdZDEq--SObR-CHofH4cvs__fsc,10642
|
|
946
946
|
nuitka/utils/WindowsResources.py,sha256=npt3jbcTgh1M5G6jyEv6uFqiZIf84XEea3wXQ_sXGdM,19837
|
|
947
947
|
nuitka/utils/Yaml.py,sha256=osd2K6G4XxSpzzTA-KzYoN8n2OF11zgB-4QxgJOig8M,7206
|
|
948
948
|
nuitka/utils/__init__.py,sha256=TkW50aBd9haxBi-DXHM71oVA31d5oPeL06ZwuBSkPqo,865
|
|
949
|
-
Nuitka_winsvc-2.4.
|
|
950
|
-
Nuitka_winsvc-2.4.
|
|
951
|
-
Nuitka_winsvc-2.4.
|
|
952
|
-
Nuitka_winsvc-2.4.
|
|
953
|
-
Nuitka_winsvc-2.4.
|
|
954
|
-
Nuitka_winsvc-2.4.
|
|
949
|
+
Nuitka_winsvc-2.4.11.dist-info/LICENSE.txt,sha256=ZWq74m8T3pVbRFjCBu74q_4GyW11rCqtYB_1vZ4rQ88,11348
|
|
950
|
+
Nuitka_winsvc-2.4.11.dist-info/METADATA,sha256=_ENO8MUsxNHB0fkUAbEkLgP4CN9kHxri4YzwjrPyt9M,4960
|
|
951
|
+
Nuitka_winsvc-2.4.11.dist-info/WHEEL,sha256=tE2EWZPEv-G0fjAlUUz7IGM64246YKD9fpv4HcsDMkk,101
|
|
952
|
+
Nuitka_winsvc-2.4.11.dist-info/entry_points.txt,sha256=jeBnijqxZ4U0WpNEdtaogpNMNlv5jw8H7yMOsf2isFc,308
|
|
953
|
+
Nuitka_winsvc-2.4.11.dist-info/top_level.txt,sha256=TRrfKxSYukbo1yzTGfwyH7wVzhDpKlwQsLjhIr15yqY,7
|
|
954
|
+
Nuitka_winsvc-2.4.11.dist-info/RECORD,,
|
nuitka/OptionParsing.py
CHANGED
|
@@ -401,7 +401,7 @@ allowed forms. With '--include-data-files=/path/to/file/*.txt=folder_name/some.t
|
|
|
401
401
|
will copy a single file and complain if it's multiple. With
|
|
402
402
|
'--include-data-files=/path/to/files/*.txt=folder_name/' it will put
|
|
403
403
|
all matching files into that folder. For recursive copy there is a
|
|
404
|
-
form with 3 values that '--include-data-files=/path/to/scan=folder_name
|
|
404
|
+
form with 3 values that '--include-data-files=/path/to/scan=folder_name/=**/*.txt'
|
|
405
405
|
that will preserve directory structure. Default empty.""",
|
|
406
406
|
)
|
|
407
407
|
|
nuitka/Options.py
CHANGED
|
@@ -53,6 +53,7 @@ from nuitka.PythonVersions import (
|
|
|
53
53
|
)
|
|
54
54
|
from nuitka.utils.Execution import getExecutablePath
|
|
55
55
|
from nuitka.utils.FileOperations import (
|
|
56
|
+
getNormalizedPath,
|
|
56
57
|
isLegalPath,
|
|
57
58
|
isPathExecutable,
|
|
58
59
|
openTextFile,
|
|
@@ -121,7 +122,7 @@ def checkPathSpec(value, arg_name, allow_disable):
|
|
|
121
122
|
)
|
|
122
123
|
|
|
123
124
|
# This changes the '/' to '\' on Windows at least.
|
|
124
|
-
value =
|
|
125
|
+
value = getNormalizedPath(value)
|
|
125
126
|
|
|
126
127
|
if "\n" in value or "\r" in value:
|
|
127
128
|
Tracing.options_logger.sysexit(
|
|
@@ -1571,7 +1572,7 @@ _shall_use_static_lib_python = None
|
|
|
1571
1572
|
|
|
1572
1573
|
|
|
1573
1574
|
def _shallUseStaticLibPython():
|
|
1574
|
-
# return driven, pylint: disable=too-many-return-statements
|
|
1575
|
+
# many cases and return driven, pylint: disable=too-many-branches,too-many-return-statements
|
|
1575
1576
|
|
|
1576
1577
|
if shallMakeModule():
|
|
1577
1578
|
return False, "not used in module mode"
|
|
@@ -1604,11 +1605,20 @@ def _shallUseStaticLibPython():
|
|
|
1604
1605
|
|
|
1605
1606
|
# For Anaconda default to trying static lib python library, which
|
|
1606
1607
|
# normally is just not available or if it is even unusable.
|
|
1607
|
-
if isAnacondaPython()
|
|
1608
|
-
|
|
1609
|
-
|
|
1610
|
-
|
|
1611
|
-
|
|
1608
|
+
if isAnacondaPython():
|
|
1609
|
+
if isMacOS():
|
|
1610
|
+
# TODO: Maybe some linker options can make it happen.
|
|
1611
|
+
return (
|
|
1612
|
+
False,
|
|
1613
|
+
"Anaconda on macOS exports not all symbols when using it.",
|
|
1614
|
+
)
|
|
1615
|
+
elif not isWin32Windows():
|
|
1616
|
+
return (
|
|
1617
|
+
True,
|
|
1618
|
+
"""\
|
|
1619
|
+
Nuitka on Anaconda needs package for static libpython installed. \
|
|
1620
|
+
Execute 'conda install libpython-static'.""",
|
|
1621
|
+
)
|
|
1612
1622
|
|
|
1613
1623
|
if isPyenvPython():
|
|
1614
1624
|
return True, "Nuitka on pyenv should not use '--enable-shared'."
|
nuitka/Version.py
CHANGED
nuitka/build/SconsCaching.py
CHANGED
|
@@ -279,7 +279,11 @@ def _getCcacheStatistics(ccache_logfile):
|
|
|
279
279
|
# can be matched against it.
|
|
280
280
|
commands = {}
|
|
281
281
|
|
|
282
|
-
|
|
282
|
+
# Due to upstream issues, lines in the log might have different encodings.
|
|
283
|
+
# All command and result lines use the platform's default encoding,
|
|
284
|
+
# so we follow this to ensure these lines are correct.
|
|
285
|
+
# Unrecognized characters are replaced by byte values, e.g. "\xde\xad"
|
|
286
|
+
for line in getFileContentByLine(ccache_logfile, errors="backslashreplace"):
|
|
283
287
|
match = re_command.match(line)
|
|
284
288
|
|
|
285
289
|
if match:
|
|
@@ -313,7 +317,9 @@ def _getCcacheStatistics(ccache_logfile):
|
|
|
313
317
|
|
|
314
318
|
all_text = []
|
|
315
319
|
|
|
316
|
-
for line2 in getFileContentByLine(
|
|
320
|
+
for line2 in getFileContentByLine(
|
|
321
|
+
ccache_logfile, errors="backslashreplace"
|
|
322
|
+
):
|
|
317
323
|
match = re_anything.match(line2)
|
|
318
324
|
|
|
319
325
|
if match:
|
|
@@ -379,9 +379,9 @@ For Python version %s MSVC %s or later is required, not %s which is too old."""
|
|
|
379
379
|
% (compiler_path,)
|
|
380
380
|
)
|
|
381
381
|
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
382
|
+
# This also will trigger using it to use our own gcc in branch below.
|
|
383
|
+
compiler_path = None
|
|
384
|
+
env["CC"] = None
|
|
385
385
|
|
|
386
386
|
if compiler_path is None and msvc_version is None:
|
|
387
387
|
scons_details_logger.info(
|
|
@@ -125,7 +125,10 @@ static PyObject *Nuitka_Method_deepcopy(struct Nuitka_MethodObject *method, PyOb
|
|
|
125
125
|
return NULL;
|
|
126
126
|
}
|
|
127
127
|
|
|
128
|
-
|
|
128
|
+
PyObject *result = Nuitka_Method_New(method->m_function, object, method->m_class);
|
|
129
|
+
// Nuitka_Method_New took a reference to the object.
|
|
130
|
+
Py_DECREF(object);
|
|
131
|
+
return result;
|
|
129
132
|
}
|
|
130
133
|
|
|
131
134
|
static PyMethodDef Nuitka_Method_methods[] = {
|
|
@@ -673,11 +673,11 @@ void Nuitka_PyObject_GC_Link(PyObject *op) {
|
|
|
673
673
|
gc->_gc_next = 0;
|
|
674
674
|
gc->_gc_prev = 0;
|
|
675
675
|
|
|
676
|
-
gcstate->
|
|
677
|
-
gcstate->heap_size++;
|
|
676
|
+
gcstate->generations[0].count++;
|
|
678
677
|
|
|
679
|
-
if (gcstate->
|
|
680
|
-
!_Py_atomic_load_int_relaxed(&gcstate->collecting) &&
|
|
678
|
+
if (gcstate->generations[0].count > gcstate->generations[0].threshold && gcstate->enabled &&
|
|
679
|
+
gcstate->generations[0].threshold && !_Py_atomic_load_int_relaxed(&gcstate->collecting) &&
|
|
680
|
+
!_PyErr_Occurred(tstate)) {
|
|
681
681
|
Nuitka_Py_ScheduleGC(tstate);
|
|
682
682
|
}
|
|
683
683
|
#endif
|
|
@@ -39,6 +39,7 @@ void _initSlotCompare(void) {
|
|
|
39
39
|
PyDict_SetItem(kw_args, const_str_plain___init__, (PyObject *)Py_TYPE(Py_None));
|
|
40
40
|
|
|
41
41
|
// Create the type.
|
|
42
|
+
CHECK_OBJECT(const_str_plain___cmp__);
|
|
42
43
|
PyTypeObject *c = (PyTypeObject *)PyObject_CallFunctionObjArgs((PyObject *)&PyType_Type, const_str_plain___cmp__,
|
|
43
44
|
pos_args, kw_args, NULL);
|
|
44
45
|
Py_DECREF(pos_args);
|
|
@@ -774,7 +774,9 @@ static unsigned char const *_unpackBlobConstant(PyThreadState *tstate, PyObject
|
|
|
774
774
|
PyObject *u = PyUnicode_FromStringAndSize((const char *)data, 1);
|
|
775
775
|
data += 1;
|
|
776
776
|
|
|
777
|
-
#if PYTHON_VERSION >=
|
|
777
|
+
#if PYTHON_VERSION >= 0x3c7
|
|
778
|
+
_PyUnicode_InternImmortal(tstate->interp, &u);
|
|
779
|
+
#elif PYTHON_VERSION >= 0x300
|
|
778
780
|
PyUnicode_InternInPlace(&u);
|
|
779
781
|
#else
|
|
780
782
|
insertToDictCache(unicode_cache, &u);
|
|
@@ -828,7 +830,9 @@ static unsigned char const *_unpackBlobConstant(PyThreadState *tstate, PyObject
|
|
|
828
830
|
#endif
|
|
829
831
|
data += size + 1;
|
|
830
832
|
|
|
831
|
-
#if PYTHON_VERSION >=
|
|
833
|
+
#if PYTHON_VERSION >= 0x3c7
|
|
834
|
+
_PyUnicode_InternImmortal(tstate->interp, &u);
|
|
835
|
+
#elif PYTHON_VERSION >= 0x300
|
|
832
836
|
if (c == 'a') {
|
|
833
837
|
PyUnicode_InternInPlace(&u);
|
|
834
838
|
}
|
|
@@ -130,7 +130,7 @@ PyObject *MATCH_CLASS_ARGS(PyThreadState *tstate, PyObject *matched, PyObject *m
|
|
|
130
130
|
if (unlikely(arg_value == NULL)) {
|
|
131
131
|
DROP_ERROR_OCCURRED(tstate);
|
|
132
132
|
|
|
133
|
-
|
|
133
|
+
Py_XDECREF(match_args);
|
|
134
134
|
Py_DECREF(result);
|
|
135
135
|
|
|
136
136
|
Py_INCREF_IMMORTAL(Py_None);
|
|
@@ -1114,7 +1114,7 @@ static void changeStandardHandleTarget(FILE *std_handle, filename_char_t const *
|
|
|
1114
1114
|
static void Nuitka_at_exit(void) { NUITKA_PRINT_TIMING("Nuitka_at_exit(): Called by C exit()"); }
|
|
1115
1115
|
#endif
|
|
1116
1116
|
|
|
1117
|
-
#if !defined(_NUITKA_DEPLOYMENT_MODE) && !defined(
|
|
1117
|
+
#if !defined(_NUITKA_DEPLOYMENT_MODE) && !defined(_NUITKA_NO_DEPLOYMENT_SEGFAULT)
|
|
1118
1118
|
#include <signal.h>
|
|
1119
1119
|
static void nuitka_segfault_handler(int sig) {
|
|
1120
1120
|
puts("Nuitka: A segmentation fault has occurred. This is highly unusual and can");
|
|
@@ -1132,6 +1132,11 @@ extern wchar_t const *getBinaryFilenameWideChars(bool resolve_symlinks);
|
|
|
1132
1132
|
extern char const *getBinaryFilenameHostEncoded(bool resolve_symlinks);
|
|
1133
1133
|
#endif
|
|
1134
1134
|
|
|
1135
|
+
// No longer in header files, but still usable.
|
|
1136
|
+
#if PYTHON_VERSION >= 0x3d0
|
|
1137
|
+
PyAPI_FUNC(void) PySys_AddWarnOption(const wchar_t *s);
|
|
1138
|
+
#endif
|
|
1139
|
+
|
|
1135
1140
|
#ifdef _NUITKA_WINMAIN_ENTRY_POINT
|
|
1136
1141
|
int __stdcall wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, wchar_t *lpCmdLine, int nCmdShow) {
|
|
1137
1142
|
/* MSVC, MINGW64 */
|
|
@@ -1146,7 +1151,7 @@ int main(int argc, char **argv) {
|
|
|
1146
1151
|
#endif
|
|
1147
1152
|
|
|
1148
1153
|
// Installer a segfault handler that outputs a helpful message.
|
|
1149
|
-
#if !defined(_NUITKA_DEPLOYMENT_MODE) && !defined(
|
|
1154
|
+
#if !defined(_NUITKA_DEPLOYMENT_MODE) && !defined(_NUITKA_NO_DEPLOYMENT_SEGFAULT)
|
|
1150
1155
|
signal(SIGSEGV, nuitka_segfault_handler);
|
|
1151
1156
|
#endif
|
|
1152
1157
|
|
nuitka/freezer/DependsExe.py
CHANGED
|
@@ -9,6 +9,7 @@ We use depends.exe to investigate needed DLLs of Python DLLs.
|
|
|
9
9
|
|
|
10
10
|
import os
|
|
11
11
|
|
|
12
|
+
from nuitka.__past__ import WindowsError
|
|
12
13
|
from nuitka.containers.OrderedSets import OrderedSet
|
|
13
14
|
from nuitka.Options import assumeYesForDownloads
|
|
14
15
|
from nuitka.Tracing import inclusion_logger
|
|
@@ -132,7 +133,13 @@ def _parseDependsExeOutput2(lines):
|
|
|
132
133
|
continue
|
|
133
134
|
|
|
134
135
|
dll_filename = os.path.abspath(dll_filename)
|
|
135
|
-
|
|
136
|
+
|
|
137
|
+
# Ignore errors trying to resolve the filename. Sometimes Chinese
|
|
138
|
+
# directory paths do not resolve to long filenames.
|
|
139
|
+
try:
|
|
140
|
+
dll_filename = getWindowsLongPathName(dll_filename)
|
|
141
|
+
except WindowsError:
|
|
142
|
+
pass
|
|
136
143
|
|
|
137
144
|
dll_name = os.path.basename(dll_filename)
|
|
138
145
|
|
|
@@ -35,6 +35,7 @@ from nuitka.utils.FileOperations import (
|
|
|
35
35
|
getFileList,
|
|
36
36
|
getFilenameExtension,
|
|
37
37
|
getFileSize,
|
|
38
|
+
getNormalizedPath,
|
|
38
39
|
isFilenameBelowPath,
|
|
39
40
|
isLegalPath,
|
|
40
41
|
isRelativePath,
|
|
@@ -98,9 +99,9 @@ class IncludedDataFile(object):
|
|
|
98
99
|
|
|
99
100
|
self.kind = kind
|
|
100
101
|
self.source_path = source_path
|
|
101
|
-
self.dest_path =
|
|
102
|
+
self.dest_path = getNormalizedPath(dest_path)
|
|
102
103
|
|
|
103
|
-
is_legal, illegal_reason = isLegalPath(dest_path)
|
|
104
|
+
is_legal, illegal_reason = isLegalPath(self.dest_path)
|
|
104
105
|
if not is_legal:
|
|
105
106
|
general.sysexit(
|
|
106
107
|
"Error, cannot add data file with '%s' path, as '%s'"
|
|
@@ -538,7 +539,7 @@ def _reportDataFiles():
|
|
|
538
539
|
|
|
539
540
|
|
|
540
541
|
def _checkPathConflict(dest_path, standalone_entry_points):
|
|
541
|
-
assert
|
|
542
|
+
assert getNormalizedPath(dest_path) == dest_path
|
|
542
543
|
|
|
543
544
|
while dest_path:
|
|
544
545
|
for standalone_entry_point in standalone_entry_points:
|
|
@@ -17,6 +17,7 @@ from nuitka.Options import getShallNotIncludeDllFilePatterns, isShowInclusion
|
|
|
17
17
|
from nuitka.Tracing import general, inclusion_logger
|
|
18
18
|
from nuitka.utils.FileOperations import (
|
|
19
19
|
areSamePaths,
|
|
20
|
+
getNormalizedPath,
|
|
20
21
|
getReportPath,
|
|
21
22
|
hasFilenameExtension,
|
|
22
23
|
haveSameFileContents,
|
|
@@ -51,7 +52,7 @@ def _makeIncludedEntryPoint(
|
|
|
51
52
|
assert type(executable) is bool, executable
|
|
52
53
|
|
|
53
54
|
# Make sure outside code uses sane paths only.
|
|
54
|
-
assert source_path ==
|
|
55
|
+
assert source_path == getNormalizedPath(source_path), source_path
|
|
55
56
|
|
|
56
57
|
# Avoid obvious mistakes, these files won't be binaries or DLL ever, right?
|
|
57
58
|
assert not hasFilenameExtension(path=source_path, extensions=(".qml", ".json"))
|
|
@@ -60,7 +61,7 @@ def _makeIncludedEntryPoint(
|
|
|
60
61
|
logger=logger,
|
|
61
62
|
kind=kind,
|
|
62
63
|
source_path=source_path,
|
|
63
|
-
dest_path=
|
|
64
|
+
dest_path=getNormalizedPath(dest_path),
|
|
64
65
|
module_name=module_name,
|
|
65
66
|
package_name=package_name,
|
|
66
67
|
executable=executable,
|
nuitka/freezer/Standalone.py
CHANGED
|
@@ -32,6 +32,7 @@ from nuitka.PythonFlavors import (
|
|
|
32
32
|
getHomebrewInstallPath,
|
|
33
33
|
isAnacondaPython,
|
|
34
34
|
isHomebrewPython,
|
|
35
|
+
isMSYS2MingwPython,
|
|
35
36
|
)
|
|
36
37
|
from nuitka.PythonVersions import getSystemPrefixPath
|
|
37
38
|
from nuitka.Tracing import general, inclusion_logger
|
|
@@ -236,6 +237,9 @@ def _reduceToPythonPath(used_dlls):
|
|
|
236
237
|
if isHomebrewPython():
|
|
237
238
|
inside_paths.insert(0, getHomebrewInstallPath())
|
|
238
239
|
|
|
240
|
+
if isMSYS2MingwPython():
|
|
241
|
+
inside_paths.insert(0, os.path.join(getSystemPrefixPath(), "bin"))
|
|
242
|
+
|
|
239
243
|
def decideInside(dll_filename):
|
|
240
244
|
return any(
|
|
241
245
|
isFilenameBelowPath(path=inside_path, filename=dll_filename)
|
nuitka/importing/Recursion.py
CHANGED
|
@@ -345,6 +345,14 @@ def _addIncludedModule(module, package_only):
|
|
|
345
345
|
module_package=module.getFullName(),
|
|
346
346
|
package_only=False,
|
|
347
347
|
)
|
|
348
|
+
else:
|
|
349
|
+
for suffix in getSharedLibrarySuffixes():
|
|
350
|
+
if sub_path.endswith(suffix):
|
|
351
|
+
checkPluginSinglePath(
|
|
352
|
+
sub_path,
|
|
353
|
+
module_package=module.getFullName(),
|
|
354
|
+
package_only=False,
|
|
355
|
+
)
|
|
348
356
|
|
|
349
357
|
elif module.isCompiledPythonModule() or module.isUncompiledPythonModule():
|
|
350
358
|
ModuleRegistry.addRootModule(module)
|
|
@@ -11,7 +11,6 @@ from nuitka.Options import isStandaloneMode, shallCreateAppBundle
|
|
|
11
11
|
from nuitka.plugins.PluginBase import NuitkaPluginBase
|
|
12
12
|
from nuitka.PythonFlavors import isHomebrewPython
|
|
13
13
|
from nuitka.PythonVersions import getSystemPrefixPath, getTkInterVersion
|
|
14
|
-
from nuitka.utils.FileOperations import listDllFilesFromDirectory, relpath
|
|
15
14
|
from nuitka.utils.Utils import isMacOS, isWin32Windows
|
|
16
15
|
|
|
17
16
|
# spell-checker: ignore tkinterdnd,tkdnd,tcltk
|
|
@@ -135,34 +134,6 @@ override it here. Default is automatic detection.""",
|
|
|
135
134
|
The Tcl library dir. See comments for Tk library dir.""",
|
|
136
135
|
)
|
|
137
136
|
|
|
138
|
-
@staticmethod
|
|
139
|
-
def _getTkinterDnDPlatformDirectory():
|
|
140
|
-
# From their code:
|
|
141
|
-
import platform
|
|
142
|
-
|
|
143
|
-
if platform.system() == "Darwin":
|
|
144
|
-
return "osx64"
|
|
145
|
-
elif platform.system() == "Linux":
|
|
146
|
-
return "linux64"
|
|
147
|
-
elif platform.system() == "Windows":
|
|
148
|
-
return "win64"
|
|
149
|
-
else:
|
|
150
|
-
return None
|
|
151
|
-
|
|
152
|
-
def _considerDataFilesTkinterDnD(self, module):
|
|
153
|
-
platform_rep = self._getTkinterDnDPlatformDirectory()
|
|
154
|
-
|
|
155
|
-
if platform_rep is None:
|
|
156
|
-
return
|
|
157
|
-
|
|
158
|
-
yield self.makeIncludedPackageDataFiles(
|
|
159
|
-
package_name="tkinterdnd2",
|
|
160
|
-
package_directory=module.getCompileTimeDirectory(),
|
|
161
|
-
pattern=os.path.join("tkdnd", platform_rep, "**"),
|
|
162
|
-
reason="Tcl needed for 'tkinterdnd2' usage",
|
|
163
|
-
tags="tcl",
|
|
164
|
-
)
|
|
165
|
-
|
|
166
137
|
def _getTclCandidatePaths(self):
|
|
167
138
|
# Check typical locations of the dirs
|
|
168
139
|
yield os.getenv("TCL_LIBRARY")
|
|
@@ -234,12 +205,6 @@ The Tcl library dir. See comments for Tk library dir.""",
|
|
|
234
205
|
IncludedDataFile objects.
|
|
235
206
|
"""
|
|
236
207
|
|
|
237
|
-
# Extra TCL providing module go here:
|
|
238
|
-
if module.getFullName() == "tkinterdnd2.TkinterDnD":
|
|
239
|
-
yield self._considerDataFilesTkinterDnD(module)
|
|
240
|
-
|
|
241
|
-
return
|
|
242
|
-
|
|
243
208
|
if not _isTkInterModule(module) or self.files_copied:
|
|
244
209
|
return
|
|
245
210
|
|
|
@@ -301,27 +266,6 @@ that works, report a bug."""
|
|
|
301
266
|
|
|
302
267
|
self.files_copied = True
|
|
303
268
|
|
|
304
|
-
def getExtraDlls(self, module):
|
|
305
|
-
if module.getFullName() == "tkinterdnd2.TkinterDnD":
|
|
306
|
-
platform_rep = self._getTkinterDnDPlatformDirectory()
|
|
307
|
-
|
|
308
|
-
if platform_rep is None:
|
|
309
|
-
return
|
|
310
|
-
|
|
311
|
-
module_directory = module.getCompileTimeDirectory()
|
|
312
|
-
|
|
313
|
-
for filename, _dll_filename in listDllFilesFromDirectory(
|
|
314
|
-
os.path.join(module_directory, "tkdnd", platform_rep)
|
|
315
|
-
):
|
|
316
|
-
dest_path = relpath(filename, module_directory)
|
|
317
|
-
yield self.makeDllEntryPoint(
|
|
318
|
-
source_path=filename,
|
|
319
|
-
dest_path=os.path.join("tkinterdnd2", dest_path),
|
|
320
|
-
module_name="tkinterdnd2",
|
|
321
|
-
package_name="tkinterdnd2",
|
|
322
|
-
reason="tkinterdnd2 package DLL",
|
|
323
|
-
)
|
|
324
|
-
|
|
325
269
|
def onModuleCompleteSet(self, module_set):
|
|
326
270
|
if str is bytes:
|
|
327
271
|
plugin_binding_name = "Tkinter"
|
|
@@ -173,14 +173,17 @@
|
|
|
173
173
|
- depends:
|
|
174
174
|
- 'apt_pkg'
|
|
175
175
|
|
|
176
|
-
- module-name: 'arcade' # checksum:
|
|
176
|
+
- module-name: 'arcade' # checksum: d7d0718b
|
|
177
177
|
data-files:
|
|
178
178
|
- dirs:
|
|
179
179
|
- 'resources/system'
|
|
180
|
+
- patterns:
|
|
181
|
+
- 'VERSION'
|
|
180
182
|
anti-bloat:
|
|
181
183
|
- no-auto-follow:
|
|
182
|
-
'examples': 'Arcade examples are not
|
|
183
|
-
'experimental': 'Experimental features of Arcade will not be available unless you do "--include-module=
|
|
184
|
+
'examples': 'Arcade examples are not available unless you do "--include-module=arcade.examples"'
|
|
185
|
+
'experimental': 'Experimental features of Arcade will not be available unless you do "--include-module=arcade.experimental"'
|
|
186
|
+
'future': 'Upcoming features of Arcade will not be available unless you do "--include-module=arcade.future"'
|
|
184
187
|
|
|
185
188
|
- module-name: 'aspose' # checksum: 1ffc48f1
|
|
186
189
|
data-files:
|
|
@@ -1118,18 +1121,18 @@
|
|
|
1118
1121
|
- dirs:
|
|
1119
1122
|
- 'locale/en'
|
|
1120
1123
|
|
|
1121
|
-
- module-name: 'django.core.management' # checksum:
|
|
1124
|
+
- module-name: 'django.core.management' # checksum: 18979466
|
|
1122
1125
|
parameters:
|
|
1123
1126
|
- 'name': 'settings-module'
|
|
1124
1127
|
'values': 'checkModuleName(value)'
|
|
1125
1128
|
variables:
|
|
1126
1129
|
setup_code:
|
|
1127
1130
|
- 'import os, importlib'
|
|
1128
|
-
- 'settings = importlib.import_module(os.getenv("PARAMETER_SETTINGS_MODULE"))'
|
|
1131
|
+
- 'settings = importlib.import_module(os.getenv("PARAMETER_SETTINGS_MODULE")) if os.getenv("PARAMETER_SETTINGS_MODULE") else None'
|
|
1129
1132
|
declarations:
|
|
1130
|
-
'django_installed_apps': 'settings.INSTALLED_APPS'
|
|
1133
|
+
'django_installed_apps': 'settings.INSTALLED_APPS if settings else ()'
|
|
1131
1134
|
environment:
|
|
1132
|
-
'PARAMETER_SETTINGS_MODULE': 'get_parameter("settings-module",
|
|
1135
|
+
'PARAMETER_SETTINGS_MODULE': 'get_parameter("settings-module", "")'
|
|
1133
1136
|
anti-bloat:
|
|
1134
1137
|
# This makes exceptions to the "*" dependency in the
|
|
1135
1138
|
# implicit-imports section below.
|
|
@@ -1178,6 +1181,12 @@
|
|
|
1178
1181
|
- depends:
|
|
1179
1182
|
- 'django.template.loader_tags'
|
|
1180
1183
|
|
|
1184
|
+
- module-name: 'django.views.debug' # checksum: 466f47d3
|
|
1185
|
+
anti-bloat:
|
|
1186
|
+
- description: 'workaround columns not available from compiled frame execution'
|
|
1187
|
+
replacements_plain:
|
|
1188
|
+
'if PY311:': 'if False:'
|
|
1189
|
+
|
|
1181
1190
|
- module-name: 'dns.rdtypes' # checksum: 119feab4
|
|
1182
1191
|
implicit-imports:
|
|
1183
1192
|
- depends:
|
|
@@ -1739,6 +1748,11 @@
|
|
|
1739
1748
|
'from torch.utils.cpp_extension import _get_build_directory, load': ''
|
|
1740
1749
|
when: 'not use_setuptools'
|
|
1741
1750
|
|
|
1751
|
+
- module-name: 'gssapi.raw' # checksum: f8e7301e
|
|
1752
|
+
implicit-imports:
|
|
1753
|
+
- depends:
|
|
1754
|
+
- 'gssapi.raw._enum_extensions.*'
|
|
1755
|
+
|
|
1742
1756
|
- module-name: 'gtk._gtk' # checksum: 4fb4a03b
|
|
1743
1757
|
implicit-imports:
|
|
1744
1758
|
- depends:
|
|
@@ -2072,10 +2086,11 @@
|
|
|
2072
2086
|
- depends:
|
|
2073
2087
|
- 'keyring.backends.*'
|
|
2074
2088
|
|
|
2075
|
-
- module-name: 'keyring.backends.Windows' # checksum:
|
|
2089
|
+
- module-name: 'keyring.backends.Windows' # checksum: a414afda
|
|
2076
2090
|
implicit-imports:
|
|
2077
2091
|
- depends:
|
|
2078
2092
|
- 'win32timezone'
|
|
2093
|
+
- 'win32ctypes.core.ctypes.*'
|
|
2079
2094
|
|
|
2080
2095
|
- module-name: 'kivy' # checksum: 648dc799
|
|
2081
2096
|
data-files:
|
|
@@ -2112,13 +2127,16 @@
|
|
|
2112
2127
|
- depends:
|
|
2113
2128
|
- 'kivy.graphics.compiler'
|
|
2114
2129
|
|
|
2115
|
-
- module-name: 'kivymd' # checksum:
|
|
2130
|
+
- module-name: 'kivymd' # checksum: b3f15565
|
|
2116
2131
|
data-files:
|
|
2117
2132
|
- dirs:
|
|
2118
2133
|
- 'fonts'
|
|
2119
2134
|
- 'images'
|
|
2120
2135
|
- 'data'
|
|
2121
2136
|
- 'uix'
|
|
2137
|
+
implicit-imports:
|
|
2138
|
+
- depends:
|
|
2139
|
+
- 'kivymd.icon_definitions'
|
|
2122
2140
|
|
|
2123
2141
|
- module-name: 'kiwisolver' # checksum: a0fc11a6
|
|
2124
2142
|
dlls:
|
|
@@ -3699,6 +3717,12 @@
|
|
|
3699
3717
|
- description: 'workaround __new__ decorator issue'
|
|
3700
3718
|
append_plain: 'SharedRegistryObject.__new__ = staticmethod(SharedRegistryObject.__new__)'
|
|
3701
3719
|
|
|
3720
|
+
- module-name: 'pip._vendor' # checksum: 49920604
|
|
3721
|
+
anti-bloat:
|
|
3722
|
+
- description: 'allow pydoc inside pip vendored modules'
|
|
3723
|
+
no-auto-follow:
|
|
3724
|
+
'pydoc': 'ignore'
|
|
3725
|
+
|
|
3702
3726
|
- module-name: 'pip._vendor.rich.jupyter' # checksum: b346e77
|
|
3703
3727
|
# See rich.jupyter
|
|
3704
3728
|
anti-bloat:
|
|
@@ -3850,6 +3874,11 @@
|
|
|
3850
3874
|
- 'plyer.platforms.android.*'
|
|
3851
3875
|
when: 'android'
|
|
3852
3876
|
|
|
3877
|
+
- module-name: 'polars' # checksum: d072aa03
|
|
3878
|
+
implicit-imports:
|
|
3879
|
+
- depends:
|
|
3880
|
+
- 'numpy.core.multiarray'
|
|
3881
|
+
|
|
3853
3882
|
- module-name: 'polars.lazyframe.frame' # checksum: e9afa6bc
|
|
3854
3883
|
anti-bloat:
|
|
3855
3884
|
- description: 'remove IPython reference'
|
|
@@ -4405,7 +4434,7 @@
|
|
|
4405
4434
|
- find-dlls-near-module:
|
|
4406
4435
|
- 'shiboken2'
|
|
4407
4436
|
|
|
4408
|
-
- module-name: 'PySide6' # checksum:
|
|
4437
|
+
- module-name: 'PySide6' # checksum: 27df3ea2
|
|
4409
4438
|
implicit-imports:
|
|
4410
4439
|
- post-import-code:
|
|
4411
4440
|
- |
|
|
@@ -4458,6 +4487,12 @@
|
|
|
4458
4487
|
- 'libquick3dspatialaudioplugin'
|
|
4459
4488
|
- 'libqtvkbcomponentsplugin'
|
|
4460
4489
|
- 'libqtvkbsettingsplugin'
|
|
4490
|
+
- 'libqsqlodbc'
|
|
4491
|
+
- 'libpq.5'
|
|
4492
|
+
- 'libffmpegmediaplugin'
|
|
4493
|
+
- 'libqtquickcontrols2fluentwinui3styleimplplugin'
|
|
4494
|
+
- 'libqtquickcontrols2fluentwinui3styleplugin'
|
|
4495
|
+
- 'libqtwebviewquickplugin'
|
|
4461
4496
|
|
|
4462
4497
|
- module-name: 'PySide6.QtCore' # checksum: be0d99ac
|
|
4463
4498
|
implicit-imports:
|
|
@@ -5048,6 +5083,14 @@
|
|
|
5048
5083
|
executable: 'yes'
|
|
5049
5084
|
when: 'win32'
|
|
5050
5085
|
|
|
5086
|
+
- module-name: 'selenium_driverless' # checksum: bdcb049
|
|
5087
|
+
data-files:
|
|
5088
|
+
- dirs:
|
|
5089
|
+
- '.'
|
|
5090
|
+
implicit-imports:
|
|
5091
|
+
- depends:
|
|
5092
|
+
- 'websockets.legacy.*'
|
|
5093
|
+
|
|
5051
5094
|
- module-name: 'selenium_stealth' # checksum: 26b9c88c
|
|
5052
5095
|
data-files:
|
|
5053
5096
|
- dirs:
|
|
@@ -6894,6 +6937,16 @@
|
|
|
6894
6937
|
- depends:
|
|
6895
6938
|
- 'tiktoken_ext.*'
|
|
6896
6939
|
|
|
6940
|
+
- module-name: 'time_machine' # checksum: b038bd8
|
|
6941
|
+
anti-bloat:
|
|
6942
|
+
- description: 'remove pytest reference'
|
|
6943
|
+
no-auto-follow:
|
|
6944
|
+
'pytest': 'ignore'
|
|
6945
|
+
when: 'not use_pytest'
|
|
6946
|
+
- description: 'allow unittest'
|
|
6947
|
+
bloat-mode-overrides:
|
|
6948
|
+
'unittest': 'allow'
|
|
6949
|
+
|
|
6897
6950
|
- module-name: 'timm.models.hrnet' # checksum: fdbe0e63
|
|
6898
6951
|
anti-bloat:
|
|
6899
6952
|
- replacements_plain:
|
|
@@ -6923,6 +6976,91 @@
|
|
|
6923
6976
|
- 'libextrafont'
|
|
6924
6977
|
when: 'win32'
|
|
6925
6978
|
|
|
6979
|
+
- module-name: 'tkinterdnd2.TkinterDnD' # checksum: 401c1500
|
|
6980
|
+
data-files:
|
|
6981
|
+
- dirs:
|
|
6982
|
+
- 'tkdnd/win64'
|
|
6983
|
+
when: 'use_tkinter and win32 and version("tkinterdnd2") < (0,4)'
|
|
6984
|
+
- dirs:
|
|
6985
|
+
- 'tkdnd/linux64'
|
|
6986
|
+
when: 'use_tkinter and linux and version("tkinterdnd2") < (0,4)'
|
|
6987
|
+
- dirs:
|
|
6988
|
+
- 'tkdnd/osx64'
|
|
6989
|
+
when: 'use_tkinter and macos and version("tkinterdnd2") < (0,4)'
|
|
6990
|
+
- dirs:
|
|
6991
|
+
- 'tkdnd/win-arm64'
|
|
6992
|
+
when: 'use_tkinter and win32 and arch_arm64 and version("tkinterdnd2") >= (0,4)'
|
|
6993
|
+
- dirs:
|
|
6994
|
+
- 'tkdnd/win-x64'
|
|
6995
|
+
when: 'use_tkinter and win32 and arch_amd64 and version("tkinterdnd2") >= (0,4)'
|
|
6996
|
+
- dirs:
|
|
6997
|
+
- 'tkdnd/win-x86'
|
|
6998
|
+
when: 'use_tkinter and win32 and arch_x86 and version("tkinterdnd2") >= (0,4)'
|
|
6999
|
+
- dirs:
|
|
7000
|
+
- 'tkdnd/linux-arm64'
|
|
7001
|
+
when: 'use_tkinter and linux and arch_arm64 and version("tkinterdnd2") >= (0,4)'
|
|
7002
|
+
- dirs:
|
|
7003
|
+
- 'tkdnd/linux-x64'
|
|
7004
|
+
when: 'use_tkinter and linux and arch_amd64 and version("tkinterdnd2") >= (0,4)'
|
|
7005
|
+
- dirs:
|
|
7006
|
+
- 'tkdnd/osx-arm64'
|
|
7007
|
+
when: 'use_tkinter and macos and arch_arm64 and version("tkinterdnd2") >= (0,4)'
|
|
7008
|
+
- dirs:
|
|
7009
|
+
- 'tkdnd/osx-x64'
|
|
7010
|
+
when: 'use_tkinter and macos and arch_amd64 and version("tkinterdnd2") >= (0,4)'
|
|
7011
|
+
dlls:
|
|
7012
|
+
- from_filenames:
|
|
7013
|
+
relative_path: 'tkdnd/win64'
|
|
7014
|
+
prefixes:
|
|
7015
|
+
- ''
|
|
7016
|
+
when: 'use_tkinter and win32 and version("tkinterdnd2") < (0,4)'
|
|
7017
|
+
- from_filenames:
|
|
7018
|
+
relative_path: 'tkdnd/linux64'
|
|
7019
|
+
prefixes:
|
|
7020
|
+
- ''
|
|
7021
|
+
when: 'use_tkinter and linux and version("tkinterdnd2") < (0,4)'
|
|
7022
|
+
- from_filenames:
|
|
7023
|
+
relative_path: 'tkdnd/osx64'
|
|
7024
|
+
prefixes:
|
|
7025
|
+
- ''
|
|
7026
|
+
when: 'use_tkinter and macos and version("tkinterdnd2") < (0,4)'
|
|
7027
|
+
|
|
7028
|
+
- from_filenames:
|
|
7029
|
+
relative_path: 'tkdnd/win-arm64'
|
|
7030
|
+
prefixes:
|
|
7031
|
+
- ''
|
|
7032
|
+
when: 'use_tkinter and win32 and arch_arm64 and version("tkinterdnd2") >= (0,4)'
|
|
7033
|
+
- from_filenames:
|
|
7034
|
+
relative_path: 'tkdnd/win-x64'
|
|
7035
|
+
prefixes:
|
|
7036
|
+
- ''
|
|
7037
|
+
when: 'use_tkinter and win32 and arch_amd64 and version("tkinterdnd2") >= (0,4)'
|
|
7038
|
+
- from_filenames:
|
|
7039
|
+
relative_path: 'tkdnd/win-x86'
|
|
7040
|
+
prefixes:
|
|
7041
|
+
- ''
|
|
7042
|
+
when: 'use_tkinter and win32 and arch_x86 and version("tkinterdnd2") >= (0,4)'
|
|
7043
|
+
- from_filenames:
|
|
7044
|
+
relative_path: 'tkdnd/linux-arm64'
|
|
7045
|
+
prefixes:
|
|
7046
|
+
- ''
|
|
7047
|
+
when: 'use_tkinter and linux and arch_arm64 and version("tkinterdnd2") >= (0,4)'
|
|
7048
|
+
- from_filenames:
|
|
7049
|
+
relative_path: 'tkdnd/linux-x64'
|
|
7050
|
+
prefixes:
|
|
7051
|
+
- ''
|
|
7052
|
+
when: 'use_tkinter and linux and arch_amd64 and version("tkinterdnd2") >= (0,4)'
|
|
7053
|
+
- from_filenames:
|
|
7054
|
+
relative_path: 'tkdnd/osx-arm64'
|
|
7055
|
+
prefixes:
|
|
7056
|
+
- ''
|
|
7057
|
+
when: 'use_tkinter and macos and arch_arm64 and version("tkinterdnd2") >= (0,4)'
|
|
7058
|
+
- from_filenames:
|
|
7059
|
+
relative_path: 'tkdnd/osx-x64'
|
|
7060
|
+
prefixes:
|
|
7061
|
+
- ''
|
|
7062
|
+
when: 'use_tkinter and macos and arch_amd64 and version("tkinterdnd2") >= (0,4)'
|
|
7063
|
+
|
|
6926
7064
|
- module-name: 'tkinterweb' # checksum: 5de6ded8
|
|
6927
7065
|
data-files:
|
|
6928
7066
|
- dirs:
|
|
@@ -6991,7 +7129,7 @@
|
|
|
6991
7129
|
- include-metadata:
|
|
6992
7130
|
- 'toga-gtk'
|
|
6993
7131
|
|
|
6994
|
-
- module-name: 'toga_winforms' # checksum:
|
|
7132
|
+
- module-name: 'toga_winforms' # checksum: 618ee1e0
|
|
6995
7133
|
data-files:
|
|
6996
7134
|
- dirs:
|
|
6997
7135
|
- 'resources'
|
|
@@ -6999,16 +7137,31 @@
|
|
|
6999
7137
|
- 'toga-winforms'
|
|
7000
7138
|
dlls:
|
|
7001
7139
|
- from_filenames:
|
|
7140
|
+
relative_path: 'libs/WebView2/runtimes/win-arm64/native'
|
|
7141
|
+
prefixes:
|
|
7142
|
+
- 'WebView2Loader'
|
|
7143
|
+
when: 'win32 and arch_arm64'
|
|
7144
|
+
- from_filenames: # older toga_winforms only
|
|
7002
7145
|
relative_path: 'libs/WebView2/arm64'
|
|
7003
7146
|
prefixes:
|
|
7004
7147
|
- 'WebView2Loader'
|
|
7005
7148
|
when: 'win32 and arch_arm64'
|
|
7006
7149
|
- from_filenames:
|
|
7150
|
+
relative_path: 'libs/WebView2/runtimes/win-x86/native'
|
|
7151
|
+
prefixes:
|
|
7152
|
+
- 'WebView2Loader'
|
|
7153
|
+
when: 'win32 and arch_x86'
|
|
7154
|
+
- from_filenames: # older toga_winforms only
|
|
7007
7155
|
relative_path: 'libs/WebView2/x86'
|
|
7008
7156
|
prefixes:
|
|
7009
7157
|
- 'WebView2Loader'
|
|
7010
7158
|
when: 'win32 and arch_x86'
|
|
7011
7159
|
- from_filenames:
|
|
7160
|
+
relative_path: 'libs/WebView2/runtimes/win-x64/native'
|
|
7161
|
+
prefixes:
|
|
7162
|
+
- 'WebView2Loader'
|
|
7163
|
+
when: 'win32 and arch_amd64'
|
|
7164
|
+
- from_filenames: # older toga_winforms only
|
|
7012
7165
|
relative_path: 'libs/WebView2/x64'
|
|
7013
7166
|
prefixes:
|
|
7014
7167
|
- 'WebView2Loader'
|
nuitka/tools/testing/Common.py
CHANGED
|
@@ -593,7 +593,7 @@ def snapObjRefCntMap(before):
|
|
|
593
593
|
k = "str_overload_" + x.__class__.__name__ + str(x)
|
|
594
594
|
elif type(x) is dict:
|
|
595
595
|
if "__builtins__" in x:
|
|
596
|
-
k = "<module dict %s>" % x
|
|
596
|
+
k = "<module dict %s>" % x.get("__name__", "<maybe not a module>")
|
|
597
597
|
elif "__spec__" in x and "__name__" in x:
|
|
598
598
|
k = "<module dict %s>" % x["__name__"]
|
|
599
599
|
else:
|
nuitka/utils/FileOperations.py
CHANGED
|
@@ -10,6 +10,7 @@ stuff. It will also frequently add sorting for determinism.
|
|
|
10
10
|
|
|
11
11
|
from __future__ import print_function
|
|
12
12
|
|
|
13
|
+
import codecs
|
|
13
14
|
import errno
|
|
14
15
|
import fnmatch
|
|
15
16
|
import glob
|
|
@@ -101,8 +102,8 @@ def areSamePaths(path1, path2):
|
|
|
101
102
|
if path1 == path2:
|
|
102
103
|
return True
|
|
103
104
|
|
|
104
|
-
path1 = os.path.abspath(
|
|
105
|
-
path2 = os.path.abspath(
|
|
105
|
+
path1 = os.path.abspath(getNormalizedPath(path1))
|
|
106
|
+
path2 = os.path.abspath(getNormalizedPath(path2))
|
|
106
107
|
|
|
107
108
|
if os.path.exists(path1) and os.path.exists(path2):
|
|
108
109
|
path1 = getExternalUsePath(path1)
|
|
@@ -787,19 +788,22 @@ def withTemporaryFile(suffix="", mode="w", delete=True, temp_path=None):
|
|
|
787
788
|
yield temp_file
|
|
788
789
|
|
|
789
790
|
|
|
790
|
-
def getFileContentByLine(filename, mode="r", encoding=None):
|
|
791
|
+
def getFileContentByLine(filename, mode="r", encoding=None, errors=None):
|
|
791
792
|
# We read the whole, to keep lock times minimal. We only deal with small
|
|
792
793
|
# files like this normally.
|
|
793
|
-
return getFileContents(
|
|
794
|
+
return getFileContents(
|
|
795
|
+
filename, mode, encoding=encoding, errors=errors
|
|
796
|
+
).splitlines()
|
|
794
797
|
|
|
795
798
|
|
|
796
|
-
def getFileContents(filename, mode="r", encoding=None):
|
|
799
|
+
def getFileContents(filename, mode="r", encoding=None, errors=None):
|
|
797
800
|
"""Get the contents of a file.
|
|
798
801
|
|
|
799
802
|
Args:
|
|
800
803
|
filename: str with the file to be read
|
|
801
804
|
mode: "r" for str, "rb" for bytes result
|
|
802
805
|
encoding: optional encoding to used when reading the file, e.g. "utf8"
|
|
806
|
+
errors: optional error handler decoding the content, as defined in `codecs`
|
|
803
807
|
|
|
804
808
|
Returns:
|
|
805
809
|
str or bytes - depending on mode.
|
|
@@ -807,7 +811,7 @@ def getFileContents(filename, mode="r", encoding=None):
|
|
|
807
811
|
"""
|
|
808
812
|
|
|
809
813
|
with withFileLock("reading file %s" % filename):
|
|
810
|
-
with openTextFile(filename, mode, encoding=encoding) as f:
|
|
814
|
+
with openTextFile(filename, mode, encoding=encoding, errors=errors) as f:
|
|
811
815
|
return f.read()
|
|
812
816
|
|
|
813
817
|
|
|
@@ -829,18 +833,11 @@ def getFileFirstLine(filename, mode="r", encoding=None):
|
|
|
829
833
|
return f.readline()
|
|
830
834
|
|
|
831
835
|
|
|
832
|
-
def openTextFile(filename, mode, encoding=None):
|
|
833
|
-
if
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
return codecs.open(filename, mode, encoding=encoding)
|
|
837
|
-
else:
|
|
838
|
-
# Avoid deprecation warning, is now the default.
|
|
839
|
-
if python_version >= 0x370:
|
|
840
|
-
mode = mode.replace("U", "")
|
|
836
|
+
def openTextFile(filename, mode, encoding=None, errors=None):
|
|
837
|
+
if python_version >= 0x3B0:
|
|
838
|
+
mode = mode.replace("U", "")
|
|
841
839
|
|
|
842
|
-
|
|
843
|
-
return open(filename, mode) # pylint: disable=unspecified-encoding
|
|
840
|
+
return codecs.open(filename, mode, encoding=encoding, errors=errors)
|
|
844
841
|
|
|
845
842
|
|
|
846
843
|
def putTextFileContents(filename, contents, encoding=None):
|
|
@@ -1533,6 +1530,18 @@ def getParentDirectories(path):
|
|
|
1533
1530
|
yield path
|
|
1534
1531
|
|
|
1535
1532
|
|
|
1533
|
+
def getNormalizedPath(path):
|
|
1534
|
+
"""Return normalized path that is also a native path, i.e. only legal characters.
|
|
1535
|
+
|
|
1536
|
+
Needed, because MSYS2 likes to keep "/" in normalized paths.
|
|
1537
|
+
"""
|
|
1538
|
+
path = os.path.normpath(path)
|
|
1539
|
+
if isWin32Windows():
|
|
1540
|
+
path = path.replace("/", "\\")
|
|
1541
|
+
|
|
1542
|
+
return path
|
|
1543
|
+
|
|
1544
|
+
|
|
1536
1545
|
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
1537
1546
|
# integrates with CPython, but also works on its own.
|
|
1538
1547
|
#
|
nuitka/utils/Utils.py
CHANGED
|
@@ -128,6 +128,22 @@ def getWindowsRelease():
|
|
|
128
128
|
if not isWin32OrPosixWindows():
|
|
129
129
|
return None
|
|
130
130
|
|
|
131
|
+
if isPosixWindows():
|
|
132
|
+
from .FileOperations import getFileContents
|
|
133
|
+
|
|
134
|
+
build_number = int(
|
|
135
|
+
getFileContents("/proc/version").split(" ")[0].rsplit("-")[-1]
|
|
136
|
+
)
|
|
137
|
+
|
|
138
|
+
if build_number >= 21996:
|
|
139
|
+
return 11
|
|
140
|
+
elif build_number >= 10240:
|
|
141
|
+
return 10
|
|
142
|
+
elif build_number >= 9200:
|
|
143
|
+
return 8
|
|
144
|
+
else:
|
|
145
|
+
return 7
|
|
146
|
+
|
|
131
147
|
class OsVersionInfoEx(ctypes.Structure):
|
|
132
148
|
_fields_ = [
|
|
133
149
|
("dwOSVersionInfoSize", ctypes.c_ulong),
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|