Nuitka-winsvc 2.1.3__cp311-cp311-win_amd64.whl → 2.1.4__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.

@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: Nuitka-winsvc
3
- Version: 2.1.3
3
+ Version: 2.1.4
4
4
  Summary: Nuitka but support compile as Windows service
5
5
  Home-page: https://github.com/tabris17/Nuitka-winsvc
6
6
  Author: tabris17
@@ -1,5 +1,5 @@
1
- Nuitka_winsvc-2.1.3.data/scripts/nuitka-run.bat,sha256=zzCZ6CymZcBcI_BMB1RwNIegL0JcACGwKTMeIW-aaOU,924
2
- Nuitka_winsvc-2.1.3.data/scripts/nuitka.bat,sha256=G-3yCOmURvmaYtciOLW4cMRGEcutzcsea4qDJqfezg0,1061
1
+ Nuitka_winsvc-2.1.4.data/scripts/nuitka-run.bat,sha256=zzCZ6CymZcBcI_BMB1RwNIegL0JcACGwKTMeIW-aaOU,924
2
+ Nuitka_winsvc-2.1.4.data/scripts/nuitka.bat,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=7kFpFEWpyL9clv1LIHtIhYPJi0psItCcn0RYf4paEuA,3800
@@ -10,7 +10,7 @@ nuitka/HardImportRegistry.py,sha256=mquDn6znusONCBZkd1qSSIIseNG2B9EWc62AWIZ0ufQ,
10
10
  nuitka/MainControl.py,sha256=MpUcKFw16tiXmOKtrnLArHNlp3XEjinQjwalK7Ozp1Q,38348
11
11
  nuitka/ModuleRegistry.py,sha256=lIElF9BCVa2JmmhsBjyjAt6MSFo2vusJ71RUrkaMAQo,8616
12
12
  nuitka/OptionParsing.py,sha256=ofKRnuwNLL-hDI7wA8kUDozbTkgi74xtKGr_x1jJFS0,64040
13
- nuitka/Options.py,sha256=bNDx2h_ZNHTU7bO-9e2hyFyZrDBMeMHOKoXoYViPnPc,75543
13
+ nuitka/Options.py,sha256=5ChUTjvtxt9xTWTyXLA8CYngtCRbM2L4fAPqjmIOIiI,75581
14
14
  nuitka/OutputDirectories.py,sha256=7hM8zVNoclTVup6StkxUuhRJ8IEHjhaKXX3lb03BmcY,5276
15
15
  nuitka/PostProcessing.py,sha256=8IeVz3GNx4OkgEaP2HALSbZi1bFdaIicioD10l5_n3o,14940
16
16
  nuitka/Progress.py,sha256=0QQ0cHSBMz5FNxUTPZrT4cyKfuryuDLeMPloCFWsABI,6797
@@ -22,7 +22,7 @@ nuitka/SourceCodeReferences.py,sha256=quGcd9Kg3FjYwsSDDv49MWi_Yec2AurRp-cVspo5qq
22
22
  nuitka/Tracing.py,sha256=7BE6sDP5XmOWzoQnjC05ll2b5i38KLzXr2V5zI4eXX4,13335
23
23
  nuitka/TreeXML.py,sha256=SKL4lL6Tcfu7Uetq-KaFo3q0-M18bp6Szc4eMrNwrfw,3513
24
24
  nuitka/Variables.py,sha256=53u-p0l58lrBg8nNSYd5DjR3AOGezMayUM7C05vANVM,15470
25
- nuitka/Version.py,sha256=sWCe4Jb2CJGmTg7D7BrBkV9GcPWs2QYz16s1Mz-tRfc,2466
25
+ nuitka/Version.py,sha256=CmAdX3G6n2LnMYg7fWP0ZDF7afLGtlU269bDDHflPe8,2466
26
26
  nuitka/__init__.py,sha256=TkW50aBd9haxBi-DXHM71oVA31d5oPeL06ZwuBSkPqo,865
27
27
  nuitka/__main__.py,sha256=HZFjEt3fdlQLqcreBI6dlUvA53IqQMnZE4Aj5FPwu1s,6373
28
28
  nuitka/__past__.py,sha256=x9W6PDKU2SOY2Qbeu5kgiwgJ5edjG4BUPhdA-6qQ7mY,5604
@@ -426,12 +426,12 @@ nuitka/build/static_src/HelpersEnvironmentVariables.c,sha256=NFeGsWd6Z8TgvtbAWAI
426
426
  nuitka/build/static_src/HelpersEnvironmentVariablesSystem.c,sha256=gH3eizvT_9-hagDwFkHl5I2lxxIVa4G7GQkRJQSY7yY,2979
427
427
  nuitka/build/static_src/HelpersExceptions.c,sha256=LF_wD4iuiBxOJ4knEQlaMsXU6u7e6CsdjM0JiLPSURM,7145
428
428
  nuitka/build/static_src/HelpersFiles.c,sha256=th2W88Qgfz7BtYVx-J273JS74mavLFyHxJDv-O4RTWA,8018
429
- nuitka/build/static_src/HelpersFilesystemPaths.c,sha256=b9guvQ9KsV5I0xEt8dP7RxavXmXDeXnsTWY1Q7gIJic,28522
429
+ nuitka/build/static_src/HelpersFilesystemPaths.c,sha256=1B3jal9mlQdtXwNoZSrISp2NLjGvV7LCagfJoCPYNl4,28806
430
430
  nuitka/build/static_src/HelpersFloats.c,sha256=prn_PJ6OW408oVNSuRAVgUBeGh_6VmLcbImrpm_LmTQ,2455
431
431
  nuitka/build/static_src/HelpersHeapStorage.c,sha256=MAnXlbBSrKR5hMBqEQnNOUfcDS7v0rhxcC7awaFUErw,1803
432
432
  nuitka/build/static_src/HelpersImport.c,sha256=By3gv6XUaX6V5WeGuW11s3OJ-Q404hngLaQW4dVDU-o,16080
433
433
  nuitka/build/static_src/HelpersImportHard.c,sha256=gCfQnlIjYgSv3vEWWKR-9xn_g43GvJLLetueRve5u0Y,16403
434
- nuitka/build/static_src/HelpersLists.c,sha256=K4Kbuxt9YLlgVFp0M04iQ_b2TQdgqYFNKz5MV03i06M,19100
434
+ nuitka/build/static_src/HelpersLists.c,sha256=_7S8vxAVvpVDp_DAoN49eA4WjoPg2poXmlKraYjXHQM,19996
435
435
  nuitka/build/static_src/HelpersListsGenerated.c,sha256=IcKy25_HGf01NXb9nAmQ0QhdbrD8vlx-sdfe_j_QAnk,13944
436
436
  nuitka/build/static_src/HelpersMappings.c,sha256=f3s_pCQGKeMiWD7AmdZEXGgLRvT3r-Fzgos2Yr9Gqvg,1669
437
437
  nuitka/build/static_src/HelpersMatching.c,sha256=RZE2m2mt5jV_h4KzR9zLRxm1AOKI472TULGjrShnm-E,3587
@@ -515,7 +515,7 @@ nuitka/code_generation/ExpressionCodes.py,sha256=XEngo5BLKaV8I_h0nnFCbjl1mNDeuST
515
515
  nuitka/code_generation/FrameCodes.py,sha256=4eku-4VXfWqWK6cScaFr-MjrqHYTHMu3awlUNr8bsTE,17804
516
516
  nuitka/code_generation/FunctionCodes.py,sha256=_3uHG-fU0SubqBl3-zp8IunoQfNAuaxsYm-vRJrthQ0,28337
517
517
  nuitka/code_generation/GeneratorCodes.py,sha256=LztRxayhsc8mWkvPA9_WIaOU2Ld2q-ZNpuaZTZBnL1g,7828
518
- nuitka/code_generation/GlobalConstants.py,sha256=BI7fSLpuD33bawhtVzH5D0rGjPzLg5Qk2FwBmh5Lzcc,6343
518
+ nuitka/code_generation/GlobalConstants.py,sha256=w3_igsJm-jR6f60cklLoyepjehzOKOyYmGRWknKEi60,6384
519
519
  nuitka/code_generation/GlobalsLocalsCodes.py,sha256=VUP7sYWwtU6R7pMOejTjtEtHjSssItKhxy-WTdUruDo,6985
520
520
  nuitka/code_generation/IdCodes.py,sha256=kCjuVPNEXHTZRJ3ztopxfQHH2aTjKG9WxQ3lemCE7Us,1870
521
521
  nuitka/code_generation/ImportCodes.py,sha256=5h-UHd2E0EB480rzX2e_Oc4qD38m9jZrRnkvT-lgN6M,14684
@@ -526,7 +526,7 @@ nuitka/code_generation/IntegerCodes.py,sha256=mZMWhwv3V-MIeV5qDstO9FtUyN8xLvn4Ty
526
526
  nuitka/code_generation/IteratorCodes.py,sha256=TQAgoIaV4zZck91CfmyL74uJKdv6fG8AJkxL5-qWShY,12211
527
527
  nuitka/code_generation/LabelCodes.py,sha256=53aDcH6YJPLbr2CYvRMoSbcCc9qyIXy0aq5oPjEd2cg,2055
528
528
  nuitka/code_generation/LineNumberCodes.py,sha256=pLche-cwZiQLYdU-CwnGm0_kE58SH_9kdPuGORfe8S0,2645
529
- nuitka/code_generation/ListCodes.py,sha256=arYbk092r0EkzNs2jgxe7p80Yx0wP4leTVEIDYjZe9k,16138
529
+ nuitka/code_generation/ListCodes.py,sha256=_gQAH3tTCM_KQAOn0gh3Bxj4CUeoAAHwFM1q2a_xxnM,16152
530
530
  nuitka/code_generation/LoaderCodes.py,sha256=3WvIV-9OwLBltHI4WCXehg0TOp-9ELMCl5ILQKXWJdo,6658
531
531
  nuitka/code_generation/LocalsDictCodes.py,sha256=pUkUhT4lMuG-vvYas7vqqpdq0ra6c_69fEcOAKwn4mo,10016
532
532
  nuitka/code_generation/LoopCodes.py,sha256=eGXAoz6aXR-buzVz2MfAdphAkbBW4vur2bDTA2C835Y,3174
@@ -744,7 +744,7 @@ nuitka/optimizations/ValueTraces.py,sha256=m_d8JbsGWFbnxuV58sOPVPtnU-Rh6Br3pAAtA
744
744
  nuitka/optimizations/__init__.py,sha256=TkW50aBd9haxBi-DXHM71oVA31d5oPeL06ZwuBSkPqo,865
745
745
  nuitka/pgo/PGO.py,sha256=9oSnX1hXeuECPOujz4vadlGI6-wFYICWjdTBrE04G9c,4932
746
746
  nuitka/pgo/__init__.py,sha256=TkW50aBd9haxBi-DXHM71oVA31d5oPeL06ZwuBSkPqo,865
747
- nuitka/plugins/PluginBase.py,sha256=4Zd7nXjeLYzadBFKozPhDXto7Ol4G1AsXn3jdwSv8bI,56670
747
+ nuitka/plugins/PluginBase.py,sha256=40ViJaWkVcO8STEtEVydwOIhNNXE8Jnx3TpHkpyOSMw,56921
748
748
  nuitka/plugins/Plugins.py,sha256=6wOakwXv24G0rnvEyzafZF5xLT84Y_gx5fp5ToOwxEI,59723
749
749
  nuitka/plugins/__init__.py,sha256=TkW50aBd9haxBi-DXHM71oVA31d5oPeL06ZwuBSkPqo,865
750
750
  nuitka/plugins/standard/AntiBloatPlugin.py,sha256=cgEC5sM5yXVBnScn7kXvq_wIxrNP8HoGqJ6I2aQ52hg,30408
@@ -758,12 +758,12 @@ nuitka/plugins/standard/EventletPlugin.py,sha256=Wj3YDAior_de5-d7-X7L-aE4-aTk5CX
758
758
  nuitka/plugins/standard/GeventPlugin.py,sha256=_cKREOuAXiKCYpjH5fcRfRT6lHhfz0JgcYhOzMOiw2Y,1913
759
759
  nuitka/plugins/standard/GiPlugin.py,sha256=699BiowDSOw01T0XY7UDAjhUyNUoJpIPKiUET6GK14c,4017
760
760
  nuitka/plugins/standard/GlfwPlugin.py,sha256=DaWEfMhLdxzd12IqLTi4qb6R2sCAu_aQjI0cfuneZ8c,4854
761
- nuitka/plugins/standard/ImplicitImports.py,sha256=PFOINfzHbOv3IfEc1Ll7Vdl04-QN8gOYdlx2Xbd7WGo,31878
761
+ nuitka/plugins/standard/ImplicitImports.py,sha256=WsOa1krRImS0zBkPox9RYi38u3otpicn1ey9ul65-FE,32261
762
762
  nuitka/plugins/standard/KivyPlugin.py,sha256=FGpyxlRRQhsKYktLwI0B41EF28lZGHPLBvAeUlyyfrw,5024
763
- nuitka/plugins/standard/MatplotlibPlugin.py,sha256=bq9gKeb3zbFbtDIIgnXTxucH-r6T3H9NTQzkPAcDWDQ,8159
763
+ nuitka/plugins/standard/MatplotlibPlugin.py,sha256=Em8zs9k8hvQ5PsXsFYDGZCwySwXYNLXvkW73-wPoJpk,8823
764
764
  nuitka/plugins/standard/MultiprocessingPlugin.py,sha256=EzWhHHFM0036v4ku2dhFvB1CCjwm_VCveJDEUL5MyrQ,7080
765
765
  nuitka/plugins/standard/NumpyPlugin.py,sha256=mAzhziM_7o-SKxnKtGp7CBhWV86Jvs5OLMbHTQNFJoE,1220
766
- nuitka/plugins/standard/OptionsNannyPlugin.py,sha256=2AostvTQM9YKiTaZNddEGITJB_OaMI3ZrBOnaQn6OO8,7306
766
+ nuitka/plugins/standard/OptionsNannyPlugin.py,sha256=k7ttYEuq6x2ByuMhCBenS92g9-e2RlUkLBos7eXa4Ag,7433
767
767
  nuitka/plugins/standard/PbrPlugin.py,sha256=RtLGO3_35qrecTadPVm_IqdBmd0mNylLoMKvXD0MTx0,1940
768
768
  nuitka/plugins/standard/PkgResourcesPlugin.py,sha256=fTLt0V8E8zxCIIHl66hA8tLOV5IVwEA2UEPESWTMa3g,4875
769
769
  nuitka/plugins/standard/PmwPlugin.py,sha256=CmmjIfjp7E-HCeuYVXyB0gJJDEMGSgPXl-aRn-Dvt4o,7042
@@ -776,14 +776,14 @@ nuitka/plugins/standard/TransformersPlugin.py,sha256=9MAbtousSksrIzHbYjW-UPlsIXf
776
776
  nuitka/plugins/standard/TrioPlugin.py,sha256=5tIrmbLsuEn_koP4S9F2CuOEw6kyAQ7NyOESPtsF54Q,1106
777
777
  nuitka/plugins/standard/UpxPlugin.py,sha256=1I3WouiEmKQAvTkzhgmJ2FRjDKHC0oH9onENntmFphg,5668
778
778
  nuitka/plugins/standard/__init__.py,sha256=TkW50aBd9haxBi-DXHM71oVA31d5oPeL06ZwuBSkPqo,865
779
- nuitka/plugins/standard/standard.nuitka-package.config.yml,sha256=ire0ManiZO2mdS09VaOAioTRKe4IxMPNygVQXXNKhDQ,232908
779
+ nuitka/plugins/standard/standard.nuitka-package.config.yml,sha256=LIwy_lGqeSFIm_cOLbtebNiuYxWZNK3UFBkOEs5l_7c,230668
780
780
  nuitka/plugins/standard/stdlib2.nuitka-package.config.yml,sha256=AUjtaX5pUWpvPru9WiTjvKDFeISY4XXv-UDO25MdrAM,2352
781
781
  nuitka/plugins/standard/stdlib3.nuitka-package.config.yml,sha256=Y_vbnb_R_q3sHjtUUgOkxpIi1cBaS9DAX38gTb7yk68,12392
782
782
  nuitka/plugins/standard/DillPlugin/DillPlugin.c,sha256=XEr9N_2U2vKOEhTnth3UyIHTYowgKWfin_8jS1jaMXA,1646
783
783
  nuitka/plugins/standard/DillPlugin/dill-postLoad.py,sha256=WICFdsvx5ZZKqgfX-GuYWqsuL7avFDqxlFk6UA3qihk,9826
784
784
  nuitka/reports/CompilationReportReader.py,sha256=0tviyGwsHIw-qxGRnCxCNIJshir61KdGMMCA3hYaIXk,2287
785
785
  nuitka/reports/LicenseReport.rst.j2,sha256=CPxGcCfBlYXRDHUOOuzVs-bcVj8IQ5kA4GAn5ayRIzc,2089
786
- nuitka/reports/Reports.py,sha256=tVZy9pAzfLNV_DblOtSrk-kbPX3JzL9QzqVISvIv_yo,27389
786
+ nuitka/reports/Reports.py,sha256=vqYGWGoVlp3I22M1RMhzH71cbx0NHmI0HWynToYwf-k,27497
787
787
  nuitka/reports/__init__.py,sha256=TkW50aBd9haxBi-DXHM71oVA31d5oPeL06ZwuBSkPqo,865
788
788
  nuitka/specs/BuiltinBytesOperationSpecs.py,sha256=IHSeni5fD47sh2mlPOlFRIBU5BYYgB8jRIDATtLse0I,5943
789
789
  nuitka/specs/BuiltinDictOperationSpecs.py,sha256=QY7acLh6R9HgWhiAc82qWB1LULJ4DQF5-SdsCIV98wE,2818
@@ -887,7 +887,7 @@ nuitka/utils/CommandLineOptions.py,sha256=yrJuW2Ze4UlfN_fzsxFDSd9l_UZDikave-fb1a
887
887
  nuitka/utils/Distributions.py,sha256=GoiF7fgTd1w-lXFjKZJFv0fX0Ogt8LfMLPsCxH0WsVg,14981
888
888
  nuitka/utils/Download.py,sha256=Gq9f3f067umOThrvjPjMw5vULCszDv9yXYjfJVn1gBg,6413
889
889
  nuitka/utils/Execution.py,sha256=b16XvcrFcTu4pXaQJERlAglA0y4s6cUCWrPACZXpoPw,13185
890
- nuitka/utils/FileOperations.py,sha256=V44aWs5YaC-s1DM-tuUWxTzQwkT7BNVEv-bQFbJ6akw,40995
890
+ nuitka/utils/FileOperations.py,sha256=4J35kEVrf6lE4P7g_xC9it4Al_pVmN_waFWT5vsfVOE,41401
891
891
  nuitka/utils/Hashing.py,sha256=vOFVzPNqAJw7NNZ1Hxe0rllnKO-HGwd6n5N3R_2WgQM,3753
892
892
  nuitka/utils/Images.py,sha256=r9EGodHskO-_u2mWnZojZUNMhDlcZxgHg31UgsxE2j0,2395
893
893
  nuitka/utils/Importing.py,sha256=BC2Sae_aiZs4mmQx7MeXdsRDOtZYtMbAvXlA2Ng_3Wk,10121
@@ -912,9 +912,9 @@ nuitka/utils/WindowsFileUsage.py,sha256=UglAr8IbR1IGOysHMEuBUT-tnwF3tTcR80fNGSMl
912
912
  nuitka/utils/WindowsResources.py,sha256=npt3jbcTgh1M5G6jyEv6uFqiZIf84XEea3wXQ_sXGdM,19837
913
913
  nuitka/utils/Yaml.py,sha256=aeYsCj6mM8uYiMSg0TIkVSKsa-8lYzJXmfpbyLRsMi4,7014
914
914
  nuitka/utils/__init__.py,sha256=TkW50aBd9haxBi-DXHM71oVA31d5oPeL06ZwuBSkPqo,865
915
- Nuitka_winsvc-2.1.3.dist-info/LICENSE.txt,sha256=ZWq74m8T3pVbRFjCBu74q_4GyW11rCqtYB_1vZ4rQ88,11348
916
- Nuitka_winsvc-2.1.3.dist-info/METADATA,sha256=xNeevHxQE_tPkL-G_ECDItFTU87IfSGy9q_ARLZmnZ0,4909
917
- Nuitka_winsvc-2.1.3.dist-info/WHEEL,sha256=nSybvzWlmdJnHiUQSY-d7V1ycwEVUTqXiTvr2eshg44,102
918
- Nuitka_winsvc-2.1.3.dist-info/entry_points.txt,sha256=jeBnijqxZ4U0WpNEdtaogpNMNlv5jw8H7yMOsf2isFc,308
919
- Nuitka_winsvc-2.1.3.dist-info/top_level.txt,sha256=TRrfKxSYukbo1yzTGfwyH7wVzhDpKlwQsLjhIr15yqY,7
920
- Nuitka_winsvc-2.1.3.dist-info/RECORD,,
915
+ Nuitka_winsvc-2.1.4.dist-info/LICENSE.txt,sha256=ZWq74m8T3pVbRFjCBu74q_4GyW11rCqtYB_1vZ4rQ88,11348
916
+ Nuitka_winsvc-2.1.4.dist-info/METADATA,sha256=S7FqQT_d0tEJ1_h0oAEU5S1_j8MZzLc8Bw_vPUukqGE,4909
917
+ Nuitka_winsvc-2.1.4.dist-info/WHEEL,sha256=nSybvzWlmdJnHiUQSY-d7V1ycwEVUTqXiTvr2eshg44,102
918
+ Nuitka_winsvc-2.1.4.dist-info/entry_points.txt,sha256=jeBnijqxZ4U0WpNEdtaogpNMNlv5jw8H7yMOsf2isFc,308
919
+ Nuitka_winsvc-2.1.4.dist-info/top_level.txt,sha256=TRrfKxSYukbo1yzTGfwyH7wVzhDpKlwQsLjhIr15yqY,7
920
+ Nuitka_winsvc-2.1.4.dist-info/RECORD,,
nuitka/Options.py CHANGED
@@ -1068,6 +1068,7 @@ make sure that is intended."""
1068
1068
  and not shallMakeModule()
1069
1069
  and not shallUseStaticLibPython()
1070
1070
  and getSystemStaticLibPythonPath() is not None
1071
+ and not shallUsePythonDebug()
1071
1072
  ):
1072
1073
  Tracing.options_logger.info(
1073
1074
  """Detected static libpython to exist, consider '--static-libpython=yes' for better performance, \
nuitka/Version.py CHANGED
@@ -20,7 +20,7 @@
20
20
  """
21
21
 
22
22
  version_string = """\
23
- Nuitka V2.1.3
23
+ Nuitka V2.1.4
24
24
  Copyright (C) 2024 Kay Hayen."""
25
25
 
26
26
 
@@ -900,12 +900,18 @@ bool expandTemplatePath(char *target, char const *source, size_t buffer_size) {
900
900
  appendStringSafe(target, home_path, buffer_size);
901
901
  is_path = true;
902
902
  } else if (strcasecmp(var_name, "CACHE_DIR") == 0) {
903
- if (expandTemplatePath(target, "{HOME}", buffer_size - strlen(target)) == false) {
904
- return false;
905
- }
903
+ char const *xdg_cache_home = getenv("XDG_CACHE_HOME");
904
+
905
+ if (xdg_cache_home != NULL && xdg_cache_home[0] == '/') {
906
+ appendStringSafe(target, xdg_cache_home, buffer_size);
907
+ } else {
908
+ if (expandTemplatePath(target, "{HOME}", buffer_size - strlen(target)) == false) {
909
+ return false;
910
+ }
906
911
 
907
- appendCharSafe(target, '/', buffer_size);
908
- appendStringSafe(target, ".cache", buffer_size);
912
+ appendCharSafe(target, '/', buffer_size);
913
+ appendStringSafe(target, ".cache", buffer_size);
914
+ }
909
915
  is_path = true;
910
916
  #ifdef NUITKA_COMPANY_NAME
911
917
  } else if (strcasecmp(var_name, "COMPANY") == 0) {
@@ -318,16 +318,16 @@ bool LIST_EXTEND_FOR_UNPACK(PyThreadState *tstate, PyObject *list, PyObject *oth
318
318
  #endif
319
319
 
320
320
  bool LIST_APPEND1(PyObject *target, PyObject *item) {
321
- #if _NUITKA_EXPERIMENTAL_DISABLE_LIST_OPT
322
- int res = PyList_Append(target, item);
323
- Py_DECREF(item);
324
- return res == 0;
325
- #else
326
321
  CHECK_OBJECT(target);
327
322
  assert(PyList_CheckExact(target));
328
323
 
329
324
  CHECK_OBJECT(item);
330
325
 
326
+ #if _NUITKA_EXPERIMENTAL_DISABLE_LIST_OPT
327
+ int res = PyList_Append(target, item);
328
+ Py_DECREF(item);
329
+ return res == 0;
330
+ #else
331
331
  PyListObject *list = (PyListObject *)target;
332
332
 
333
333
  Py_ssize_t cur_size = PyList_GET_SIZE(list);
@@ -346,15 +346,15 @@ bool LIST_APPEND1(PyObject *target, PyObject *item) {
346
346
  }
347
347
 
348
348
  bool LIST_APPEND0(PyObject *target, PyObject *item) {
349
- #if _NUITKA_EXPERIMENTAL_DISABLE_LIST_OPT
350
- int res = PyList_Append(target, item);
351
- return res == 0;
352
- #else
353
349
  CHECK_OBJECT(target);
354
350
  assert(PyList_CheckExact(target));
355
351
 
356
352
  CHECK_OBJECT(item);
357
353
 
354
+ #if _NUITKA_EXPERIMENTAL_DISABLE_LIST_OPT
355
+ int res = PyList_Append(target, item);
356
+ return res == 0;
357
+ #else
358
358
  PyListObject *list = (PyListObject *)target;
359
359
 
360
360
  Py_ssize_t cur_size = PyList_GET_SIZE(list);
@@ -517,7 +517,16 @@ PyObject *LIST_INDEX3(PyThreadState *tstate, PyObject *list, PyObject *item, PyO
517
517
  return NULL;
518
518
  }
519
519
 
520
- Py_ssize_t start_ssize = PyLong_AsSsize_t(start_index);
520
+ Py_ssize_t start_ssize;
521
+ #if PYTHON_VERSION < 0x300
522
+ if (PyInt_CheckExact(start_index)) {
523
+ start_ssize = PyInt_AS_LONG(start_index);
524
+ } else {
525
+ start_ssize = PyLong_AsSsize_t(start_index);
526
+ }
527
+ #else
528
+ start_ssize = PyLong_AsSsize_t(start_index);
529
+ #endif
521
530
 
522
531
  return _LIST_INDEX_COMMON(tstate, (PyListObject *)list, item, start_ssize, Py_SIZE(list));
523
532
  }
@@ -536,7 +545,16 @@ PyObject *LIST_INDEX4(PyThreadState *tstate, PyObject *list, PyObject *item, PyO
536
545
  return NULL;
537
546
  }
538
547
 
539
- Py_ssize_t start_ssize = PyLong_AsSsize_t(start_index);
548
+ Py_ssize_t start_ssize;
549
+ #if PYTHON_VERSION < 0x300
550
+ if (PyInt_CheckExact(start_index)) {
551
+ start_ssize = PyInt_AS_LONG(start_index);
552
+ } else {
553
+ start_ssize = PyLong_AsSsize_t(start_index);
554
+ }
555
+ #else
556
+ start_ssize = PyLong_AsSsize_t(start_index);
557
+ #endif
540
558
 
541
559
  PyObject *stop_index = Nuitka_Number_IndexAsLong(stop);
542
560
 
@@ -548,7 +566,16 @@ PyObject *LIST_INDEX4(PyThreadState *tstate, PyObject *list, PyObject *item, PyO
548
566
  return NULL;
549
567
  }
550
568
 
551
- Py_ssize_t stop_ssize = PyLong_AsSsize_t(stop_index);
569
+ Py_ssize_t stop_ssize;
570
+ #if PYTHON_VERSION < 0x300
571
+ if (PyInt_CheckExact(stop_index)) {
572
+ stop_ssize = PyInt_AS_LONG(stop_index);
573
+ } else {
574
+ stop_ssize = PyLong_AsSsize_t(stop_index);
575
+ }
576
+ #else
577
+ stop_ssize = PyLong_AsSsize_t(stop_index);
578
+ #endif
552
579
 
553
580
  return _LIST_INDEX_COMMON(tstate, (PyListObject *)list, item, start_ssize, stop_ssize);
554
581
  }
@@ -556,6 +583,7 @@ PyObject *LIST_INDEX4(PyThreadState *tstate, PyObject *list, PyObject *item, PyO
556
583
  bool LIST_INSERT(PyThreadState *tstate, PyObject *list, PyObject *index, PyObject *item) {
557
584
  CHECK_OBJECT(list);
558
585
  assert(PyList_CheckExact(list));
586
+ CHECK_OBJECT(index);
559
587
  CHECK_OBJECT(item);
560
588
 
561
589
  // TODO: Avoid the clear, by having this as a variant that doesn't set the
@@ -569,7 +597,16 @@ bool LIST_INSERT(PyThreadState *tstate, PyObject *list, PyObject *index, PyObjec
569
597
  return false;
570
598
  }
571
599
 
572
- Py_ssize_t index_ssize = PyLong_AsSsize_t(index_long);
600
+ Py_ssize_t index_ssize;
601
+ #if PYTHON_VERSION < 0x300
602
+ if (PyInt_CheckExact(index_long)) {
603
+ index_ssize = PyInt_AS_LONG(index_long);
604
+ } else {
605
+ index_ssize = PyLong_AsSsize_t(index_long);
606
+ }
607
+ #else
608
+ index_ssize = PyLong_AsSsize_t(index_long);
609
+ #endif
573
610
 
574
611
  LIST_INSERT_CONST(list, index_ssize, item);
575
612
  return true;
@@ -91,6 +91,8 @@ def getConstantDefaultPopulation():
91
91
  # Meta path based loader.
92
92
  "read",
93
93
  "rb",
94
+ # List methods
95
+ "remove",
94
96
  # File handling
95
97
  "/",
96
98
  "\\",
@@ -421,7 +421,7 @@ def generateListOperationRemoveCode(to_name, expression, emit, context):
421
421
  # this call is also very bad.
422
422
  emit("assert(PyList_CheckExact(%s));" % list_arg_name)
423
423
  emit(
424
- '%s = PyObject_CallMethod(%s, (char *)"remove", "O", %s);'
424
+ "%s = PyObject_CallMethodObjArgs(%s, const_str_plain_remove, %s, NULL);"
425
425
  % (result_name, list_arg_name, value_arg_name)
426
426
  )
427
427
 
@@ -136,6 +136,7 @@ def _getEvaluationContext():
136
136
  "deployment": isDeploymentMode(),
137
137
  # Querying package versions.
138
138
  "version": _getPackageVersion,
139
+ "version_str": _getPackageVersionStr,
139
140
  "get_dist_name": _getDistributionNameFromPackageName,
140
141
  "plugin": _isPluginActive,
141
142
  "no_asserts": hasPythonFlagNoAsserts(),
@@ -272,6 +273,15 @@ def _getPackageVersion(distribution_name):
272
273
  return _package_versions[distribution_name]
273
274
 
274
275
 
276
+ def _getPackageVersionStr(distribution_name):
277
+ version = _getPackageVersion(distribution_name)
278
+
279
+ if version is not None:
280
+ version = ".".join(str(d) for d in version)
281
+
282
+ return version
283
+
284
+
275
285
  def _getModuleDirectory(module_name):
276
286
  from nuitka.importing.Importing import locateModule
277
287
 
@@ -659,12 +659,24 @@ According to Yaml 'overridden-environment-variables' configuration."""
659
659
  "transformers.utils.dummy_tf_objects", # Not performance relevant.
660
660
  "rich", # Not performance relevant and memory leaking due to empty compiled cell leaks
661
661
  "altair.vegalite.v5.schema", # Not performance relevant.
662
+ "azure", # Not performance relevant.
663
+ )
664
+
665
+ unworthy_modulename_patterns = (
666
+ "tensorflow.*test", # Not performance relevant.
667
+ "tensorflow.**.test_util", # Not performance relevant.
662
668
  )
663
669
 
664
670
  def decideCompilation(self, module_name):
665
671
  if module_name.hasOneOfNamespaces(self.unworthy_namespaces):
666
672
  return "bytecode"
667
673
 
674
+ is_match, _reason = module_name.matchesToShellPatterns(
675
+ self.unworthy_modulename_patterns
676
+ )
677
+ if is_match:
678
+ return "bytecode"
679
+
668
680
  def onModuleUsageLookAhead(
669
681
  self, module_name, module_filename, module_kind, get_module_source
670
682
  ):
@@ -91,6 +91,18 @@ https://matplotlib.org/stable/users/installing/environment_variables_faq.html#en
91
91
 
92
92
  return info
93
93
 
94
+ def getImplicitImports(self, module):
95
+ # Make sure the used Qt namespace is included in compilation, mostly for
96
+ # accelerated mode, but also to prevent people from accidentally
97
+ # removing it.
98
+ if module.getFullName() != "matplotlib":
99
+ return
100
+
101
+ matplotlib_info = self._getMatplotlibInfo()
102
+
103
+ # Make sure, the default backend is included.
104
+ yield "matplotlib.backends.backend_%s" % matplotlib_info.backend.lower()
105
+
94
106
  def considerDataFiles(self, module):
95
107
  if module.getFullName() != "matplotlib":
96
108
  return
@@ -168,6 +180,10 @@ https://matplotlib.org/stable/users/installing/environment_variables_faq.html#en
168
180
  if hasActivePlugin("tk-inter"):
169
181
  return True, "Needed for tkinter matplotlib backend"
170
182
 
183
+ if module_name == "matplotlib.backends.backend_qtagg":
184
+ if getActiveQtPluginBindingName() is not None:
185
+ return True, "Needed for qt matplotlib backend"
186
+
171
187
  def createPreModuleLoadCode(self, module):
172
188
  """Method called when a module is being imported.
173
189
 
@@ -45,26 +45,28 @@ class NuitkaPluginOptionsNanny(NuitkaPluginBase):
45
45
  if support_info == "ignore":
46
46
  return
47
47
 
48
- if support_info != "parameter":
48
+ if support_info == "parameter":
49
+ message = "Module has parameter: " + description
50
+ elif support_info == "plugin":
51
+ message = "Module has plugin consideration: " + description
52
+ else:
49
53
  if condition != "True":
50
54
  problem_desc = (
51
- "incomplete support due to untrue condition '%s'" % condition
55
+ " with incomplete support due to untrue condition '%s'" % condition
52
56
  )
53
57
  else:
54
- problem_desc = "incomplete support"
58
+ problem_desc = " with incomplete support"
55
59
 
56
- message = "Using module '%s' (version %s) with %s: %s" % (
60
+ message = "Using module '%s' (version %s)%s: %s" % (
57
61
  full_name,
58
62
  ".".join(str(d) for d in self.getPackageVersion(full_name)),
59
63
  problem_desc,
60
64
  description,
61
65
  )
62
- else:
63
- message = "Module has parameter: " + description
64
66
 
65
67
  if support_info == "error":
66
68
  self.sysexit(message)
67
- elif support_info in ("warning", "parameter"):
69
+ elif support_info in ("warning", "parameter", "plugin"):
68
70
  self.warning(message)
69
71
  elif support_info == "info":
70
72
  self.info(message)
@@ -852,12 +852,23 @@
852
852
  patterns:
853
853
  - 'dask.yaml'
854
854
 
855
+ - module-name: 'dask.dataframe' # checksum: b6b8eaf
856
+ implicit-imports:
857
+ - depends:
858
+ - 'pyarrow._*'
859
+
855
860
  - module-name: 'dask.dataframe._compat' # checksum: 78ecb250
856
861
  anti-bloat:
857
862
  - description: 'remove pandas.testing reference'
858
863
  replacements_plain:
859
864
  'import pandas.testing as tm': ''
860
865
 
866
+ - module-name: 'dask.dataframe.utils' # checksum: 5af31dde
867
+ anti-bloat:
868
+ - description: 'remove pandas.testing reference'
869
+ replacements_plain:
870
+ 'from dask.dataframe._compat import PANDAS_GE_150, tm': ''
871
+
861
872
  - module-name: 'dask.dot' # checksum: ddcb31f2
862
873
  anti-bloat:
863
874
  - description: 'remove IPython reference'
@@ -893,6 +904,14 @@
893
904
  replacements_plain:
894
905
  '__version__ = get_distribution(__name__).version': 'raise DistributionNotFound'
895
906
 
907
+ - module-name: 'deepspeed' # checksum: 5af29274
908
+ anti-bloat:
909
+ - description: 'remove setuptools usage via triton'
910
+ no-auto-follow:
911
+ 'triton': 'ignore'
912
+ 'torch.utils.cpp_extension': 'ignore'
913
+ when: 'not use_setuptools'
914
+
896
915
  - module-name: 'delphifmx' # checksum: f818d46e
897
916
  dlls:
898
917
  - from_filenames:
@@ -1851,6 +1870,29 @@
1851
1870
  prefixes:
1852
1871
  - 'libusb'
1853
1872
 
1873
+ - module-name: 'lightgbm' # checksum: 38422ad6
1874
+ data-files:
1875
+ dirs:
1876
+ - 'locales'
1877
+ patterns:
1878
+ - '*.bin'
1879
+ - 'VERSION.txt'
1880
+ dlls:
1881
+ - from_filenames:
1882
+ relative_path: 'bin'
1883
+ prefixes:
1884
+ - 'lib_lightgbm'
1885
+
1886
+ - module-name: 'lightgbm.dask' # checksum: f12519e1
1887
+ anti-bloat:
1888
+ - description: 'remove docstrings'
1889
+ replacements_plain:
1890
+ " _before_kwargs, _kwargs, _after_kwargs = _base_doc.partition('**kwargs') # type: ignore": ''
1891
+ ' {_before_kwargs}client : dask.distributed.Client or None, optional (default=None)': ''
1892
+ ? " {' ':4}Dask client. If ``None``, ``distributed.default_client()`` will be used at runtime. The Dask client used by this class will not be saved if the model object is pickled."
1893
+ : ''
1894
+ ' {_kwargs}{_after_kwargs}': ''
1895
+
1854
1896
  - module-name: 'lightgbm.libpath' # checksum: f4a8da46
1855
1897
  dlls:
1856
1898
  - from_filenames:
@@ -1927,7 +1969,7 @@
1927
1969
  - depends:
1928
1970
  - 'markdown.extensions.*'
1929
1971
 
1930
- - module-name: 'matplotlib' # checksum: faefaad3
1972
+ - module-name: 'matplotlib' # checksum: 977975bb
1931
1973
  anti-bloat:
1932
1974
  - description: 'remove setuptools and pytest testing framework reference'
1933
1975
  replacements:
@@ -1937,11 +1979,33 @@
1937
1979
  '_init_tests': "'None'"
1938
1980
  'test': "'None'"
1939
1981
  '_get_version': "'(lambda : _version.version)'"
1982
+ - description: 'avoid PySide6 unless used'
1983
+ no-auto-follow:
1984
+ 'PySide6': 'ignore'
1985
+ when: 'not use_pyside6'
1986
+ - description: 'avoid PySide2 unless used'
1987
+ no-auto-follow:
1988
+ 'PySide2': 'ignore'
1989
+ when: 'not use_pyside2'
1990
+ - description: 'avoid PyQt5 unless used'
1991
+ no-auto-follow:
1992
+ 'PyQt5': 'ignore'
1993
+ when: 'not use_pyqt5'
1994
+ - description: 'avoid PyQt6 unless used'
1995
+ no-auto-follow:
1996
+ 'PyQt6': 'ignore'
1997
+ when: 'not use_pyqt6'
1998
+
1940
1999
  implicit-imports:
1941
2000
  - depends:
1942
2001
  - 'matplotlib.backend_managers'
1943
2002
  - 'matplotlib.backend_bases'
1944
2003
  - 'mpl_toolkits'
2004
+ options:
2005
+ checks:
2006
+ - description: "For matplotlib a GUI tooltkit selection might be needed use, use '--enable-plugin=tk-inter|PySide6|PySide2|PyQt6|PyQt5', or use '--enable-plugin=no-qt' for headless mode."
2007
+ support_info: 'plugin'
2008
+ when: 'not macos and not (use_noqt or use_pyqt5 or use_pyqt6 or use_pyside2 or use_pyside6)'
1945
2009
 
1946
2010
  - module-name: 'matplotlib.backend_bases' # checksum: 5954e33d
1947
2011
  anti-bloat:
@@ -3406,6 +3470,12 @@
3406
3470
  'setuptools_scm': 'ignore'
3407
3471
  when: 'not use_setuptools'
3408
3472
 
3473
+ - module-name: 'pyarrow.dataset' # checksum: 37675d7a
3474
+ implicit-imports:
3475
+ - depends:
3476
+ - 'pyarrow._acero'
3477
+ - 'pyarrow._json'
3478
+
3409
3479
  - module-name: 'pyarrow.lib' # checksum: 302be0c2
3410
3480
  implicit-imports:
3411
3481
  - depends:
@@ -5572,13 +5642,16 @@
5572
5642
  'notebook': "'(lambda: None)'"
5573
5643
  when: 'not use_ipython'
5574
5644
 
5575
- - module-name: 'tensorflow' # checksum: 5ed34611
5645
+ - module-name: 'tensorflow' # checksum: 13d6e6a5
5576
5646
  dlls:
5577
5647
  - from_filenames:
5578
5648
  relative_path: 'core/platform'
5579
5649
  prefixes:
5580
5650
  - '_cpu_feature_guard'
5581
5651
  anti-bloat:
5652
+ - description: 'allow unittest inside of tensorflow, too dependent to remove'
5653
+ bloat-mode-overrides:
5654
+ 'unittest': 'allow'
5582
5655
  - description: 'remove useless distutils and test framework usage'
5583
5656
  replacements_plain:
5584
5657
  'import distutils as _distutils': '_distutils = None'
@@ -5593,14 +5666,12 @@
5593
5666
  append_plain: |
5594
5667
  import sys
5595
5668
  sys.modules["tensorflow.compat"] = compat
5669
+ sys.modules["tensorflow.experimental"] = experimental
5596
5670
  sys.modules["tensorflow.compat.v1"] = compat.v1
5597
5671
  sys.modules["tensorflow.compat.v2"] = compat.v2
5598
5672
  sys.modules["tensorflow.compat.v1.logging"] = compat.v1.logging
5599
5673
  sys.modules["tensorflow.compat.v2.experimental"] = compat.v2.experimental
5600
5674
  sys.modules["tensorflow.keras"] = keras
5601
- sys.modules["tensorflow.keras.layers"] = keras.layers
5602
- sys.modules["tensorflow.keras.activations"] = keras.activations
5603
- sys.modules["tensorflow.keras.models"] = keras.models
5604
5675
  when: 'standalone'
5605
5676
  - description: 'remove kubernetes as default dependency'
5606
5677
  no-auto-follow:
@@ -5613,6 +5684,12 @@
5613
5684
  - 'tensorflow_estimator'
5614
5685
  - 'keras.api._v2.keras'
5615
5686
 
5687
+ options:
5688
+ checks:
5689
+ - description: "'tensorflow' is not fully supported before version 2.16"
5690
+ support_info: 'warning'
5691
+ when: 'version("tensorflow") < (2,16)'
5692
+
5616
5693
  - module-name: 'tensorflow._api.v1.compat.v1' # checksum: 3e84bd8b
5617
5694
  anti-bloat:
5618
5695
  - description: 'remove useless tensorflow testing usage'
@@ -5627,14 +5704,12 @@
5627
5704
  'from . import test': 'test = None'
5628
5705
  'from tensorflow._api.v1.compat.v2 import test': 'test = None'
5629
5706
 
5630
- - module-name: 'tensorflow._api.v2.__internal__' # checksum: 4958c951
5707
+ - module-name: 'tensorflow._api.v2.__internal__' # checksum: 92facfb8
5631
5708
  anti-bloat:
5632
5709
  - description: 'remove useless tensorflow testing usage'
5633
5710
  replacements_plain:
5634
5711
  'from . import test': 'test = None'
5635
- 'from . import distribute': 'distribute = None'
5636
5712
  'from tensorflow._api.v2.__internal__ import test': 'test = None'
5637
- 'from tensorflow._api.v2.__internal__ import distribute': 'distribute = None'
5638
5713
 
5639
5714
  - module-name: 'tensorflow._api.v2.compat.v1' # checksum: 53024ed1
5640
5715
  anti-bloat:
@@ -5662,31 +5737,12 @@
5662
5737
  'from . import test': 'test = None'
5663
5738
  'from tensorflow._api.v2.compat.v2 import test': 'test = None'
5664
5739
 
5665
- - module-name: 'tensorflow._api.v2.compat.v2.__internal__' # checksum: 6992c716
5740
+ - module-name: 'tensorflow._api.v2.compat.v2.__internal__' # checksum: 970797b3
5666
5741
  anti-bloat:
5667
5742
  - description: 'remove useless tensorflow testing usage'
5668
5743
  replacements_plain:
5669
- # TODO: Really need to make the "un-usable" a thing
5670
5744
  'from . import test': 'test = None'
5671
5745
  'from tensorflow._api.v2.compat.v2.__internal__ import test': 'test = None'
5672
- 'from . import distribute': 'distribute = None'
5673
-
5674
- - module-name: 'tensorflow._api.v2.compat.v2.__internal__.distribute' # checksum: a5d90e6f
5675
- anti-bloat:
5676
- - description: 'remove useless tensorflow testing usage'
5677
- replacements_plain:
5678
- 'from . import multi_process_runner': 'multi_process_runner = None'
5679
- 'from tensorflow._api.v2.compat.v2.__internal__.distribute import combinations': 'combinations = None'
5680
- 'from tensorflow._api.v2.compat.v2.__internal__.distribute import interim': 'interim = None'
5681
- 'from tensorflow._api.v2.compat.v2.__internal__.distribute import multi_process_runner': 'multi_process_runner=None'
5682
- when: 'not use_unittest'
5683
-
5684
- - module-name: 'tensorflow._api.v2.compat.v2.__internal__.distribute.multi_process_runner' # checksum: b50f5527
5685
- anti-bloat:
5686
- - description: 'remove unittest reference'
5687
- replacements_plain:
5688
- 'from tensorflow.python.distribute.multi_worker_test_base import create_cluster_spec': 'pass'
5689
- when: 'not use_unittest'
5690
5746
 
5691
5747
  - module-name: 'tensorflow._api.v2.compat.v2.compat.v1' # checksum: 31fdcb26
5692
5748
  anti-bloat:
@@ -5737,15 +5793,6 @@
5737
5793
  - 'tensorflow.contrib.boosted_trees.python.ops._boosted_trees_ops'
5738
5794
  when: 'not win32'
5739
5795
 
5740
- - module-name: 'tensorflow.contrib.eager.python.tfe' # checksum: 9ea31d00
5741
- anti-bloat:
5742
- - description: 'remove unittest reference'
5743
- replacements_plain:
5744
- 'from tensorflow.python.framework.test_util import run_in_graph_and_eager_modes as run_test_in_graph_and_eager_modes': 'run_test_in_graph_and_eager_modes = None'
5745
- ? 'from tensorflow.python.framework.test_util import run_all_in_graph_and_eager_modes as run_all_tests_in_graph_and_eager_modes'
5746
- : 'run_all_tests_in_graph_and_eager_modes = None'
5747
- when: 'not use_unittest'
5748
-
5749
5796
  - module-name: 'tensorflow.contrib.factorization.python.ops.factorization_ops' # checksum: 4ea2083
5750
5797
  dlls:
5751
5798
  - from_filenames:
@@ -5959,14 +6006,6 @@
5959
6006
  replacements_plain:
5960
6007
  'ag_logging.warning(': 'if False: ag_logging.warning('
5961
6008
 
5962
- - module-name: 'tensorflow.python.autograph.impl.conversion' # checksum: fe4e1edb
5963
- anti-bloat:
5964
- - description: 'remove unittest usage'
5965
- replacements_plain:
5966
- 'import unittest': ''
5967
- 'issubclass(owner_class, unittest.TestCase)': 'False'
5968
- when: 'not use_unittest'
5969
-
5970
6009
  - module-name: 'tensorflow.python.compiler.tensorrt.trt_convert' # checksum: 9471824c
5971
6010
  implicit-imports:
5972
6011
  - depends:
@@ -5987,90 +6026,12 @@
5987
6026
  - depends:
5988
6027
  - 'tensorflow.python.data.ops.shuffle_op'
5989
6028
 
5990
- - module-name: 'tensorflow.python.distribute.combinations' # checksum: 6cb7adcb
5991
- anti-bloat:
5992
- - description: 'remove unittest reference'
5993
- replacements_plain:
5994
- 'from tensorflow.python.framework import test_combinations as combinations_lib': 'combinations_lib = None'
5995
- 'from tensorflow.python.framework import test_util': 'test_util = None'
5996
- 'from tensorflow.python.framework import test_combinations': 'test_combinations = None'
5997
- 'import unittest': ''
5998
- 'from tensorflow.python.distribute import multi_worker_test_base': ''
5999
- replacements:
6000
- 'unittest.TestLoader.testMethodPrefix': 'unittest.TestLoader.testMethodPrefix'
6001
- change_function:
6002
- '_test_runner': 'un-callable'
6003
- '_multi_worker_test': 'un-callable'
6004
- when: 'not use_unittest'
6005
-
6006
- - module-name: 'tensorflow.python.distribute.multi_process_lib' # checksum: b7c69e56
6007
- anti-bloat:
6008
- - description: 'remove unittest reference'
6009
- replacements_plain:
6010
- 'import unittest': 'unittest = None'
6011
- 'from tensorflow.python.eager import test': 'test = None'
6012
- when: 'not use_unittest'
6013
-
6014
- - module-name: 'tensorflow.python.distribute.multi_process_runner' # checksum: fc293e17
6015
- anti-bloat:
6016
- - description: 'remove useless tensorflow testing usage'
6017
- replacements_plain:
6018
- 'from . import test': 'test = None'
6019
- 'from tensorflow.python.framework import test_util': 'test_util = None'
6020
- 'test_util.is_tsan_enabled()': 'False'
6021
- 'import unittest': 'unittest = None'
6022
- when: 'not use_unittest'
6023
-
6024
- - module-name: 'tensorflow.python.distribute.multi_worker_test_base' # checksum: 28f6ca1b
6025
- anti-bloat:
6026
- - description: 'remove useless tensorflow testing usage'
6027
- replacements_plain:
6028
- 'import unittest': 'test = None'
6029
- 'from tensorflow.python.framework import test_util': 'test_util = None'
6030
- 'from tensorflow.python.platform import test': 'test = None'
6031
- 'pick_unused_port = test_util.pick_unused_port': ''
6032
- append_plain: |
6033
- ASSIGNED_PORTS: set()
6034
- lock = threading.Lock()
6035
-
6036
- def pick_unused_port():
6037
- import portpicker
6038
- global ASSIGNED_PORTS
6039
- with lock:
6040
- while True:
6041
- try:
6042
- port = portpicker.pick_unused_port()
6043
- except portpicker.NoFreePortFoundError as porterror:
6044
- raise unittest.SkipTest("") from porterror
6045
- if port > 10000 and port not in ASSIGNED_PORTS:
6046
- ASSIGNED_PORTS.add(port)
6047
- logging.info("Using local port %r", port)
6048
- return port
6049
- when: 'not use_unittest'
6050
-
6051
- - module-name: 'tensorflow.python.distribute.strategy_combinations' # checksum: 4c4b9841
6052
- anti-bloat:
6053
- - description: 'remove useless tensorflow testing usage'
6054
- replacements_plain:
6055
- 'from tensorflow.python.distribute import test_util': 'test_util = None'
6056
- 'from tensorflow.python.framework import test_util as framework_test_util': 'framework_test_util = None'
6057
- 'from tensorflow.python.distribute import multi_process_runner': 'multi_process_runner = None'
6058
- 'from tensorflow.python.distribute import multi_worker_test_base': 'multi_worker_test_base = None'
6059
- 'import unittest': 'unittest = None'
6060
-
6061
6029
  - module-name: 'tensorflow.python.framework' # checksum: 98664efa
6062
6030
  implicit-imports:
6063
6031
  - depends:
6064
6032
  - 'tensorflow.python.framework.fast_tensor_util'
6065
6033
  when: 'not win32'
6066
6034
 
6067
- - module-name: 'tensorflow.python.framework.combinations' # checksum: dd5e29c2
6068
- anti-bloat:
6069
- - description: 'remove unittest reference'
6070
- replacements_plain:
6071
- 'from tensorflow.python.framework import test_combinations': 'test_combinations = None'
6072
- when: 'not use_unittest'
6073
-
6074
6035
  - module-name: 'tensorflow.python.framework.dtypes' # checksum: 25144a68
6075
6036
  implicit-imports:
6076
6037
  - depends:
@@ -6098,6 +6059,13 @@
6098
6059
  change_function:
6099
6060
  '_copy_fn': "'(lambda fn: fn)'"
6100
6061
 
6062
+ - module-name: 'tensorflow.python.util.lazy_loader' # checksum: d4c83239
6063
+ anti-bloat:
6064
+ - description: 'reduce keras usage'
6065
+ replacements:
6066
+ 'os.environ.get("TF_USE_LEGACY_KERAS", None)': 'repr(os.environ.get("TF_USE_LEGACY_KERAS", None))'
6067
+ 'keras.__version__': 'repr(version_str("keras"))'
6068
+
6101
6069
  - module-name: 'tensorflow_core' # checksum: f377875c
6102
6070
  anti-bloat:
6103
6071
  - description: 'remove useless distutils usage'
@@ -6121,6 +6089,13 @@
6121
6089
  - depends:
6122
6090
  - 'keras.api._v2'
6123
6091
 
6092
+ - module-name: 'tensorrt_libs' # checksum: cb30dde5
6093
+ dlls:
6094
+ - from_filenames:
6095
+ prefixes:
6096
+ - 'libnv'
6097
+ dest_path: '.'
6098
+
6124
6099
  - module-name: 'text_unidecode' # checksum: e24d920b
6125
6100
  data-files:
6126
6101
  patterns:
@@ -6136,6 +6111,13 @@
6136
6111
  - depends:
6137
6112
  - '._*'
6138
6113
 
6114
+ - module-name: 'tf_keras.src' # checksum: 9760fd72
6115
+ anti-bloat:
6116
+ - description: 'remove unittest reference'
6117
+ replacements_plain:
6118
+ 'from keras.src.testing_infra import test_utils': 'test_utils = None'
6119
+ when: 'not use_unittest'
6120
+
6139
6121
  - module-name: 'tf_keras.src.utils.vis_utils' # checksum: 7d07a2d1
6140
6122
  anti-bloat:
6141
6123
  - description: 'remove IPython reference'
@@ -6682,7 +6664,7 @@
6682
6664
  'load_cuda_kernels': 'un-callable'
6683
6665
  when: 'not use_setuptools'
6684
6666
 
6685
- - module-name: 'transformers.models.deformable_detr.modling_deformable_detr' # checksum: baab8e6b
6667
+ - module-name: 'transformers.models.deformable_detr.modeling_deformable_detr' # checksum: baab8e6b
6686
6668
  anti-bloat:
6687
6669
  - description: 'remove setuptools usage'
6688
6670
  change_function:
@@ -7269,6 +7251,11 @@
7269
7251
  'import dask.array as dask_array': 'raise ImportError'
7270
7252
  when: 'not use_dask'
7271
7253
 
7254
+ - module-name: 'xarray.core.nputils' # checksum: 46ca5d07
7255
+ data-files:
7256
+ include-metadata:
7257
+ - 'numpy'
7258
+
7272
7259
  - module-name: 'xarray.core.parallel' # checksum: 37f8ca49
7273
7260
  anti-bloat:
7274
7261
  - description: 'remove optional dask usage'
nuitka/reports/Reports.py CHANGED
@@ -49,7 +49,11 @@ from nuitka.utils.Distributions import (
49
49
  getDistributionsFromModuleName,
50
50
  getDistributionVersion,
51
51
  )
52
- from nuitka.utils.FileOperations import getReportPath, putTextFileContents
52
+ from nuitka.utils.FileOperations import (
53
+ getReportPath,
54
+ putBinaryFileContents,
55
+ putTextFileContents,
56
+ )
53
57
  from nuitka.utils.Jinja2 import getTemplate
54
58
  from nuitka.utils.MemoryUsage import getMemoryInfos
55
59
  from nuitka.utils.Utils import getArchitecture, getOS
@@ -643,10 +647,13 @@ def writeCompilationReport(report_filename, report_input_data, diffable):
643
647
  ),
644
648
  )
645
649
 
650
+ contents = TreeXML.toString(root)
651
+
652
+ if type(contents) is not bytes:
653
+ contents = contents.encode("utf8")
654
+
646
655
  try:
647
- putTextFileContents(
648
- filename=report_filename, contents=TreeXML.toString(root), encoding="utf8"
649
- )
656
+ putBinaryFileContents(filename=report_filename, contents=contents)
650
657
  except OSError as e:
651
658
  reports_logger.warning(
652
659
  "Compilation report write to file '%s' failed due to: %s."
@@ -818,6 +818,22 @@ def putTextFileContents(filename, contents, encoding=None):
818
818
  _writeContents(output_file)
819
819
 
820
820
 
821
+ def putBinaryFileContents(filename, contents):
822
+ """Write a binary file from given contents.
823
+
824
+ Args:
825
+ filename: str with the file to be created
826
+ contents: bytes that should be written into the file
827
+
828
+ Returns:
829
+ None
830
+ """
831
+
832
+ with withFileLock("writing file %s" % filename):
833
+ with openTextFile(filename, "wb") as output_file:
834
+ output_file.write(contents)
835
+
836
+
821
837
  def changeTextFileContents(filename, contents, encoding=None, compare_only=False):
822
838
  """Write a text file from given contents.
823
839