Nuitka-winsvc 2.1__cp311-cp311-win_amd64.whl → 2.1.2__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
+ Version: 2.1.2
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.data/scripts/nuitka-run.bat,sha256=zzCZ6CymZcBcI_BMB1RwNIegL0JcACGwKTMeIW-aaOU,924
2
- Nuitka_winsvc-2.1.data/scripts/nuitka.bat,sha256=G-3yCOmURvmaYtciOLW4cMRGEcutzcsea4qDJqfezg0,1061
1
+ Nuitka_winsvc-2.1.2.data/scripts/nuitka-run.bat,sha256=zzCZ6CymZcBcI_BMB1RwNIegL0JcACGwKTMeIW-aaOU,924
2
+ Nuitka_winsvc-2.1.2.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
@@ -9,8 +9,8 @@ nuitka/Errors.py,sha256=cUzzWhvemFoumoYpBDacJSydfDivm-rweWVXk2ELUVo,2479
9
9
  nuitka/HardImportRegistry.py,sha256=mquDn6znusONCBZkd1qSSIIseNG2B9EWc62AWIZ0ufQ,10335
10
10
  nuitka/MainControl.py,sha256=MpUcKFw16tiXmOKtrnLArHNlp3XEjinQjwalK7Ozp1Q,38348
11
11
  nuitka/ModuleRegistry.py,sha256=lIElF9BCVa2JmmhsBjyjAt6MSFo2vusJ71RUrkaMAQo,8616
12
- nuitka/OptionParsing.py,sha256=iL4oJrHVZhbgom8ARBjG8oYntWjdJo0_b2DnZILFbJ4,63815
13
- nuitka/Options.py,sha256=6-Vf_cJZWAhX5JqzpD6vHYnWNPhZt82jwxkpPe70tUw,75161
12
+ nuitka/OptionParsing.py,sha256=wTecTFl-o0ele9vHSSxB64Qz-NNtCmjPmE3SfZbMQtI,63838
13
+ nuitka/Options.py,sha256=bNDx2h_ZNHTU7bO-9e2hyFyZrDBMeMHOKoXoYViPnPc,75543
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,16 +22,16 @@ 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=_iNhM0eUg5Wf_pTcrOtdeBisATG9YA08ScTByh8DqhY,2464
25
+ nuitka/Version.py,sha256=dQvWF7kFkUJINi-kD1YFJYUx6Ra9jDMc8z8ngBdTw4M,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
29
- nuitka/build/Backend.scons,sha256=pJB7rECmVd6EhT9MZAbplYCmVfTGRLtM1aYFrheorzk,36316
29
+ nuitka/build/Backend.scons,sha256=Xhkxbu8Wsng1ASAdz7V2plQhJqlkmggVftJaV4qf2iI,36393
30
30
  nuitka/build/CCompilerVersion.scons,sha256=P4bFT3Xc_ORfFaH2IcQIvduz6gSye9_k4WvF6RZ__BA,8583
31
31
  nuitka/build/DataComposerInterface.py,sha256=XZZgCwU4xSn6wSJ-Lgt6iHJV0vSqAslL_5ncwfNe-ic,3485
32
32
  nuitka/build/Onefile.scons,sha256=Ubt31a-dIugMRtAzR55EDKi2A7AuU6Q0DqVFfkC4qMU,17770
33
33
  nuitka/build/SconsCaching.py,sha256=BuISUUKE_HYgi6rIfH9z1OdoLyBZMB9FwaiNqGZCrnA,14643
34
- nuitka/build/SconsCompilerSettings.py,sha256=HOb7EBDQb3iXq63xxcxS7RMiz-wIkY5rP8_uBUDThkU,35455
34
+ nuitka/build/SconsCompilerSettings.py,sha256=FPzJ0Rintu0pV_nFINdvL8w0ew18Z-M-ZQAfbo7AnU4,35449
35
35
  nuitka/build/SconsHacks.py,sha256=uK_fTLqNrRwC6G6JJDsRoHhJxST13EmObiApOdeAvxo,5592
36
36
  nuitka/build/SconsInterface.py,sha256=_RUO06b97KtcH1w9rT48TFqQfKyuL4Yke2E1C-sgj84,15933
37
37
  nuitka/build/SconsProgress.py,sha256=KoJDqgKxDRPjX00rB9a48YIij_oA1dwobBD1LMCpJ9k,2704
@@ -426,7 +426,7 @@ 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=WlF8JWsZPJ18TMnt3h0IvyMThJyMFH03rPN-9K3lZu8,28501
429
+ nuitka/build/static_src/HelpersFilesystemPaths.c,sha256=b9guvQ9KsV5I0xEt8dP7RxavXmXDeXnsTWY1Q7gIJic,28522
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
@@ -664,7 +664,7 @@ nuitka/nodes/BuiltinVarsNodes.py,sha256=RkrKib7Ygr_L-mq09diqZJW74zTEE0Y0bify-Z6u
664
664
  nuitka/nodes/BytesNodes.py,sha256=JYrm3F11R1fQVRtT8-eV2QJakKuEuRVBxuKvURrF01Y,26146
665
665
  nuitka/nodes/CallNodes.py,sha256=S-SvC_IVCoXVLk2HLvdkHoecB03LxyZONLY8-e5S4nc,6511
666
666
  nuitka/nodes/Checkers.py,sha256=i4FL0EcahEtf169sHDZkpxzNQIXINpkK6EbTdaQR_Bw,1583
667
- nuitka/nodes/ChildrenHavingMixins.py,sha256=2YnVf0n6Jr637m5UP09qbHn3QrvReBX-O7HR8XRX6aw,623538
667
+ nuitka/nodes/ChildrenHavingMixins.py,sha256=OtGSHp4QgLVsuBg-TWakaBuZIy0fWZw5CDlBLWHkwTs,623739
668
668
  nuitka/nodes/ClassNodes.py,sha256=gIysDUklMchPXsc-59A7e6PlvemStLBA4Ci8jFimSlQ,8480
669
669
  nuitka/nodes/CodeObjectSpecs.py,sha256=I2_1sQORK__fCHgl_40kC2mpPz_s82b38OV4M1nYfqg,6618
670
670
  nuitka/nodes/ComparisonNodes.py,sha256=JQEDvKGxrJqesdRnOap4ebKnEuy4ilU3MuPEKglsDjE,21716
@@ -686,14 +686,14 @@ nuitka/nodes/FunctionNodes.py,sha256=8vZ4PziTPsxlySLXO3lQ_moLczZBWTiAzvcUDKPi4uk
686
686
  nuitka/nodes/FutureSpecs.py,sha256=8rsck2a_LnIPcCIA4d0rkf2RAqohyKtrIdsaeUtPHXc,5409
687
687
  nuitka/nodes/GeneratorNodes.py,sha256=wRwqfq1BrDzFTqpfw_2DOyoFYAYsmqrxEHY2QkP_n_U,6288
688
688
  nuitka/nodes/GlobalsLocalsNodes.py,sha256=bQaNhza9V0xNVomMa5F0PJO_laD6erV7HM3ex_665O8,6883
689
- nuitka/nodes/HardImportNodesGenerated.py,sha256=7-7GoRZQPV9W0RwESvH7-xyLxNSeP4G1LjVKCpLGU60,92173
689
+ nuitka/nodes/HardImportNodesGenerated.py,sha256=cdJ8xL_CU3fwFAMZi74GQnbZi2qJ3bWFRxkaGflkAG4,92183
690
690
  nuitka/nodes/ImportHardNodes.py,sha256=PJIR5wE-F-8s2DK9ugi7AqkX0N9Gb2Rq0YPbtAuCxIY,5378
691
691
  nuitka/nodes/ImportNodes.py,sha256=qsBthaVtVvTlFqbzoeMqV5SBgwFju7urDyS_0z2RtUc,47515
692
692
  nuitka/nodes/IndicatorMixins.py,sha256=yBNs3ncL27fBu3g-w6YUo-fHwumUTq8wGXKGUNc_MgA,2766
693
693
  nuitka/nodes/InjectCNodes.py,sha256=P3Pi9wbRMLHgh01kwx4lSMu-ZeVwRGRoYNwYB-D1nZw,1534
694
694
  nuitka/nodes/IterationHandles.py,sha256=VD-oRXuGf_oEJPuqGoETJ3k27AL3SzMO0cCU-Zg45Fc,11519
695
695
  nuitka/nodes/KeyValuePairNodes.py,sha256=irsSTfjFFaRjarqr7cs9h6ag1351AisL2gA22KrAcBg,11035
696
- nuitka/nodes/ListOperationNodes.py,sha256=HhRcEz-xLG0qj4oZlyZb-IYgylPM2Q3GwuAitHRmYlE,16353
696
+ nuitka/nodes/ListOperationNodes.py,sha256=ywxl5vfWoeZHflXa2vZVLqUE0YdBfORgNYpESHaXNaM,16821
697
697
  nuitka/nodes/LocalsDictNodes.py,sha256=yGvApbnihz818e7yTOncx3ijOsyUGc17LR_oaCd6aak,23177
698
698
  nuitka/nodes/LocalsScopes.py,sha256=fFUILJsOHtyKgy37x5dxFsAevv6w_q-Nbbtrb3GfpCM,15007
699
699
  nuitka/nodes/LoopNodes.py,sha256=nDfUQmWd9mQRFa0NCPEzPWZjsHr4TOolhJSXoAqw5b8,15995
@@ -744,10 +744,10 @@ 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=sU04GxeVb1fNmmJujUqjg6LdGhZlD8yvf0GsFN1_fLA,56166
748
- nuitka/plugins/Plugins.py,sha256=CRYf5YCAbaN10Qu2U_wL9Ta6xJX1BK4SUVBXoIM7X_g,59248
747
+ nuitka/plugins/PluginBase.py,sha256=I1hCNChRqMJCzXCBcU0wQTYizXRL3LRFljQ5vNR582Q,56620
748
+ nuitka/plugins/Plugins.py,sha256=6wOakwXv24G0rnvEyzafZF5xLT84Y_gx5fp5ToOwxEI,59723
749
749
  nuitka/plugins/__init__.py,sha256=TkW50aBd9haxBi-DXHM71oVA31d5oPeL06ZwuBSkPqo,865
750
- nuitka/plugins/standard/AntiBloatPlugin.py,sha256=LQ7QC_uaHm-pz2uYyfiytAO92YCVMsujeq6XaLwUVGY,28471
750
+ nuitka/plugins/standard/AntiBloatPlugin.py,sha256=cgEC5sM5yXVBnScn7kXvq_wIxrNP8HoGqJ6I2aQ52hg,30408
751
751
  nuitka/plugins/standard/ConsiderPyLintAnnotationsPlugin.py,sha256=wcMzzFP5rOcJAaJCR-nB4lE76gTiU_iUZj_2O6Y4uvc,3510
752
752
  nuitka/plugins/standard/DataFilesPlugin.py,sha256=EKpn58Sr6tQjeAr31t8V3HNGk5KuSWoXYjhEyEXp0eo,10754
753
753
  nuitka/plugins/standard/DelvewheelPlugin.py,sha256=LMH36X8CWgimaIOQU224JTnH75XHchmWt1P30_CbgRE,5080
@@ -776,7 +776,7 @@ 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=F79izLxAiEgnKhcG6OMmSAxUeuqRaZx1yFNWJn__vB4,224400
779
+ nuitka/plugins/standard/standard.nuitka-package.config.yml,sha256=gy8K_06zqP3krWX4gTcm5kjM7_cEKEusJLKZWcjpwyc,226505
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
@@ -792,7 +792,7 @@ nuitka/specs/BuiltinParameterSpecs.py,sha256=7fYP8LHP5aCNJ9358tcun_H2Y-XtmQIlSf3
792
792
  nuitka/specs/BuiltinStrOperationSpecs.py,sha256=zDJ0Z8DFfV-QlcwrWrVENx2WuwAll3-CpB8cyy7eDgk,6097
793
793
  nuitka/specs/BuiltinTypeOperationSpecs.py,sha256=gcs9lJsvHii18cm4JRPtxt-Vu4OcpT0VZJI2Rg-DEoI,1191
794
794
  nuitka/specs/BuiltinUnicodeOperationSpecs.py,sha256=p5a85dVfXss-L6T6RT-TZVDaLEXHGrzM3dcMFdYKlCA,4834
795
- nuitka/specs/HardImportSpecs.py,sha256=nZMfNxekmMi_HUzLtNcm_2Kvo4AJ5LS74e704coBX94,6242
795
+ nuitka/specs/HardImportSpecs.py,sha256=H4MnxblrvcJt3q56Be_i7UGzjW9wlwoOtbfti8xH39c,6244
796
796
  nuitka/specs/ParameterSpecs.py,sha256=NT568dEyAh0q3OIcQG-Cp30jvcOXgDG5NMzhIC3_LGo,18739
797
797
  nuitka/specs/__init__.py,sha256=TkW50aBd9haxBi-DXHM71oVA31d5oPeL06ZwuBSkPqo,865
798
798
  nuitka/tools/Basics.py,sha256=eMdww3pftA7TqRA5NGfn-_ys-Uha08rsuzRjrelrB2Y,1631
@@ -855,14 +855,14 @@ nuitka/tree/ReformulationAssertStatements.py,sha256=QLHdt3hn0BSD5AmDNIBrqHyafQZT
855
855
  nuitka/tree/ReformulationAssignmentStatements.py,sha256=hB0gs9-MhCaev_dkaTJQIG5TObgh8ObXxnyw1R5jh24,43101
856
856
  nuitka/tree/ReformulationBooleanExpressions.py,sha256=CDr39t7MMCapxVOi7K1KMZ15ixfK3yeylVffZpCuHOI,2981
857
857
  nuitka/tree/ReformulationCallExpressions.py,sha256=dLZl54nxTaliwwbz1PhUUutUqCMsfDCkl83Qcl9ClBQ,11746
858
- nuitka/tree/ReformulationClasses.py,sha256=RV-bcZopht29Ey5KPyqxrlrtgV_cehzrMATL8qI2MTk,15255
859
- nuitka/tree/ReformulationClasses3.py,sha256=tf-0AIGkaQOnJ8aVf6zRu05ZczJaeHBSasbeQTN6Fj0,38044
858
+ nuitka/tree/ReformulationClasses.py,sha256=zDr3V159pyeBiJxUg7hkpXNZ2CjUeBJTw9mZmRC6DP8,15446
859
+ nuitka/tree/ReformulationClasses3.py,sha256=HV2rrWaneRDa-u3PyFNhvKApOVH4GiUxSGD6DR9SRVA,38235
860
860
  nuitka/tree/ReformulationComparisonExpressions.py,sha256=uBs7JGSndDEGqqe4aZra4kkcyOwPCKttYOP16TKCbUo,6523
861
861
  nuitka/tree/ReformulationContractionExpressions.py,sha256=1i82b0xbEvRec63KRfRHYBGOkWRMsab5vNKlQrEvN9s,22175
862
862
  nuitka/tree/ReformulationDictionaryCreation.py,sha256=ij6RTNUZcSA5VBWtKtC28Xumz-lF-eUdY8TZcaMwbuc,11196
863
863
  nuitka/tree/ReformulationExecStatements.py,sha256=OKybT_3sSuXlJt9lSD8Essnx1emdXvEtMRHShOc5Nak,14757
864
864
  nuitka/tree/ReformulationForLoopStatements.py,sha256=krTj7wRiWATItXOFvm1U141vOcVXBav2Kez577E0l-w,7858
865
- nuitka/tree/ReformulationFunctionStatements.py,sha256=XRSwhLQbJC_2SXxvCmen_tgoQcHZWZFUTrhCW4JJRvc,30806
865
+ nuitka/tree/ReformulationFunctionStatements.py,sha256=XOjKCX4U02VPeWm56zA0Bf5T5nzvfRcaI3yglWiFLRs,30821
866
866
  nuitka/tree/ReformulationImportStatements.py,sha256=I9Dq_672VD3z67JkOKhg7-K2KR3DG1xld9_NwH3v0b0,14095
867
867
  nuitka/tree/ReformulationLambdaExpressions.py,sha256=naZOna60lo_mSpB4f8_7YQ9zlKyXuWoVUJXI76ptXUQ,6630
868
868
  nuitka/tree/ReformulationMatchStatements.py,sha256=edIkFvjNOHJAD8igq56B_LAuGaCbOfwjP3d5N7wW-U0,21311
@@ -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.dist-info/LICENSE.txt,sha256=ZWq74m8T3pVbRFjCBu74q_4GyW11rCqtYB_1vZ4rQ88,11348
916
- Nuitka_winsvc-2.1.dist-info/METADATA,sha256=3l5f9T1CRgdDiyRLKRIdgrmUOwNMSNQB88WJEgGFa-A,4907
917
- Nuitka_winsvc-2.1.dist-info/WHEEL,sha256=ircjsfhzblqgSzO8ow7-0pXK-RVqDqNRGQ8F650AUNM,102
918
- Nuitka_winsvc-2.1.dist-info/entry_points.txt,sha256=jeBnijqxZ4U0WpNEdtaogpNMNlv5jw8H7yMOsf2isFc,308
919
- Nuitka_winsvc-2.1.dist-info/top_level.txt,sha256=TRrfKxSYukbo1yzTGfwyH7wVzhDpKlwQsLjhIr15yqY,7
920
- Nuitka_winsvc-2.1.dist-info/RECORD,,
915
+ Nuitka_winsvc-2.1.2.dist-info/LICENSE.txt,sha256=ZWq74m8T3pVbRFjCBu74q_4GyW11rCqtYB_1vZ4rQ88,11348
916
+ Nuitka_winsvc-2.1.2.dist-info/METADATA,sha256=wl9ord5IYOZht0QyiDZoLFfcM_ybIfIhUB4bf3drjf8,4909
917
+ Nuitka_winsvc-2.1.2.dist-info/WHEEL,sha256=nSybvzWlmdJnHiUQSY-d7V1ycwEVUTqXiTvr2eshg44,102
918
+ Nuitka_winsvc-2.1.2.dist-info/entry_points.txt,sha256=jeBnijqxZ4U0WpNEdtaogpNMNlv5jw8H7yMOsf2isFc,308
919
+ Nuitka_winsvc-2.1.2.dist-info/top_level.txt,sha256=TRrfKxSYukbo1yzTGfwyH7wVzhDpKlwQsLjhIr15yqY,7
920
+ Nuitka_winsvc-2.1.2.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.42.0)
2
+ Generator: bdist_wheel (0.43.0)
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp311-cp311-win_amd64
5
5
 
nuitka/OptionParsing.py CHANGED
@@ -2001,6 +2001,7 @@ def _considerGithubWorkflowOptions(phase):
2001
2001
  "enable-plugins",
2002
2002
  "disable-plugin",
2003
2003
  "disable-plugins",
2004
+ "user-plugin",
2004
2005
  )
2005
2006
 
2006
2007
  def filterByName(key):
nuitka/Options.py CHANGED
@@ -31,6 +31,7 @@ from nuitka.PythonFlavors import (
31
31
  getPythonFlavorName,
32
32
  isAnacondaPython,
33
33
  isApplePython,
34
+ isArchPackagePython,
34
35
  isCPythonOfficialPackage,
35
36
  isDebianPackagePython,
36
37
  isHomebrewPython,
@@ -962,6 +963,14 @@ release will add it. In the mean time use '%s' instead."""
962
963
  % getMsvcVersion()
963
964
  )
964
965
 
966
+ try:
967
+ getJobLimit()
968
+ except ValueError:
969
+ Tracing.options_logger.sysexit(
970
+ "For --jobs value, use positive integer values only, not, but not '%s'."
971
+ % options.jobs
972
+ )
973
+
965
974
  if isOnefileMode():
966
975
  standalone_mode = "onefile"
967
976
  elif isStandaloneMode():
@@ -1501,6 +1510,9 @@ added to provide the static link library.""",
1501
1510
  if isMacOS() and isCPythonOfficialPackage():
1502
1511
  return True, None
1503
1512
 
1513
+ if isArchPackagePython():
1514
+ return True, None
1515
+
1504
1516
  return options.static_libpython == "yes", None
1505
1517
 
1506
1518
 
@@ -1572,7 +1584,12 @@ def getJobLimit():
1572
1584
  else:
1573
1585
  return getCPUCoreCount()
1574
1586
 
1575
- return int(options.jobs)
1587
+ result = int(options.jobs)
1588
+
1589
+ if result <= 0:
1590
+ raise ValueError(result)
1591
+
1592
+ return result
1576
1593
 
1577
1594
 
1578
1595
  def getLtoMode():
nuitka/Version.py CHANGED
@@ -20,7 +20,7 @@
20
20
  """
21
21
 
22
22
  version_string = """\
23
- Nuitka V2.1
23
+ Nuitka V2.1.2
24
24
  Copyright (C) 2024 Kay Hayen."""
25
25
 
26
26
 
@@ -762,6 +762,9 @@ elif not module_mode:
762
762
  env.Append(LIBS=["expat"])
763
763
 
764
764
  env.Append(LINKFLAGS=["-Xlinker", "-export-dynamic", "-rdynamic"])
765
+
766
+ if env.arch_python:
767
+ env.Append(LINKFLAGS=["-rdynamic"])
765
768
  else:
766
769
  # Fedora, Debian and Ubuntu distinguish the system libraries like this.
767
770
  if (
@@ -639,7 +639,7 @@ def setupCCompiler(env, lto_mode, pgo_mode, job_count, onefile_compile):
639
639
  if isMacOS():
640
640
  setEnvironmentVariable(env, "MACOSX_DEPLOYMENT_TARGET", env.macos_min_version)
641
641
 
642
- target_flag = "--target=%s-apple-macos%s" % (
642
+ target_flag = "--target=%s-macos%s" % (
643
643
  env.macos_target_arch,
644
644
  env.macos_min_version,
645
645
  )
@@ -836,7 +836,7 @@ bool expandTemplatePath(char *target, char const *source, size_t buffer_size) {
836
836
  char var_name[1024];
837
837
  char *w = NULL;
838
838
 
839
- bool var_started = false;
839
+ NUITKA_MAY_BE_UNUSED bool var_started = false;
840
840
 
841
841
  while (*source != 0) {
842
842
  if (*source == '{') {
@@ -33,6 +33,7 @@ class ModuleChildrenHavingBodyOptionalStatementsOrNoneFunctionsTupleMixin(object
33
33
 
34
34
  # This is generated for use in
35
35
  # CompiledPythonModule
36
+ # CompiledPythonNamespacePackage
36
37
  # CompiledPythonPackage
37
38
  # PythonMainModule
38
39
 
@@ -162,6 +163,9 @@ class ModuleChildrenHavingBodyOptionalStatementsOrNoneFunctionsTupleMixin(object
162
163
  ChildrenCompiledPythonModuleMixin = (
163
164
  ModuleChildrenHavingBodyOptionalStatementsOrNoneFunctionsTupleMixin
164
165
  )
166
+ ChildrenCompiledPythonNamespacePackageMixin = (
167
+ ModuleChildrenHavingBodyOptionalStatementsOrNoneFunctionsTupleMixin
168
+ )
165
169
  ChildrenCompiledPythonPackageMixin = (
166
170
  ModuleChildrenHavingBodyOptionalStatementsOrNoneFunctionsTupleMixin
167
171
  )
@@ -11642,7 +11646,7 @@ class ChildrenHavingNameGlobalsArgOptionalLocalsArgOptionalFromlistOptionalLevel
11642
11646
  ChildrenExpressionBuiltinImportMixin = ChildrenHavingNameGlobalsArgOptionalLocalsArgOptionalFromlistOptionalLevelOptionalMixin
11643
11647
 
11644
11648
 
11645
- class ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLasterrorOptionalMixin(
11649
+ class ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLastErrorOptionalMixin(
11646
11650
  object
11647
11651
  ):
11648
11652
  # Mixins are not allowed to specify slots, pylint: disable=assigning-non-slot
@@ -11657,7 +11661,7 @@ class ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLasterrorOp
11657
11661
  mode,
11658
11662
  handle,
11659
11663
  use_errno,
11660
- use_lasterror,
11664
+ use_last_error,
11661
11665
  ):
11662
11666
  name.parent = self
11663
11667
 
@@ -11678,10 +11682,10 @@ class ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLasterrorOp
11678
11682
 
11679
11683
  self.subnode_use_errno = use_errno
11680
11684
 
11681
- if use_lasterror is not None:
11682
- use_lasterror.parent = self
11685
+ if use_last_error is not None:
11686
+ use_last_error.parent = self
11683
11687
 
11684
- self.subnode_use_lasterror = use_lasterror
11688
+ self.subnode_use_last_error = use_last_error
11685
11689
 
11686
11690
  def getVisitableNodes(self):
11687
11691
  """The visitable nodes, with tuple values flattened."""
@@ -11703,7 +11707,7 @@ class ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLasterrorOp
11703
11707
  pass
11704
11708
  else:
11705
11709
  result.append(value)
11706
- value = self.subnode_use_lasterror
11710
+ value = self.subnode_use_last_error
11707
11711
  if value is None:
11708
11712
  pass
11709
11713
  else:
@@ -11721,7 +11725,7 @@ class ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLasterrorOp
11721
11725
  ("mode", self.subnode_mode),
11722
11726
  ("handle", self.subnode_handle),
11723
11727
  ("use_errno", self.subnode_use_errno),
11724
- ("use_lasterror", self.subnode_use_lasterror),
11728
+ ("use_last_error", self.subnode_use_last_error),
11725
11729
  )
11726
11730
 
11727
11731
  def replaceChild(self, old_node, new_node):
@@ -11760,12 +11764,12 @@ class ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLasterrorOp
11760
11764
 
11761
11765
  return
11762
11766
 
11763
- value = self.subnode_use_lasterror
11767
+ value = self.subnode_use_last_error
11764
11768
  if old_node is value:
11765
11769
  if new_node is not None:
11766
11770
  new_node.parent = self
11767
11771
 
11768
- self.subnode_use_lasterror = new_node
11772
+ self.subnode_use_last_error = new_node
11769
11773
 
11770
11774
  return
11771
11775
 
@@ -11788,8 +11792,8 @@ class ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLasterrorOp
11788
11792
  "use_errno": self.subnode_use_errno.makeClone()
11789
11793
  if self.subnode_use_errno is not None
11790
11794
  else None,
11791
- "use_lasterror": self.subnode_use_lasterror.makeClone()
11792
- if self.subnode_use_lasterror is not None
11795
+ "use_last_error": self.subnode_use_last_error.makeClone()
11796
+ if self.subnode_use_last_error is not None
11793
11797
  else None,
11794
11798
  }
11795
11799
 
@@ -11811,9 +11815,9 @@ class ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLasterrorOp
11811
11815
  if self.subnode_use_errno is not None:
11812
11816
  self.subnode_use_errno.finalize()
11813
11817
  del self.subnode_use_errno
11814
- if self.subnode_use_lasterror is not None:
11815
- self.subnode_use_lasterror.finalize()
11816
- del self.subnode_use_lasterror
11818
+ if self.subnode_use_last_error is not None:
11819
+ self.subnode_use_last_error.finalize()
11820
+ del self.subnode_use_last_error
11817
11821
 
11818
11822
  def computeExpressionRaw(self, trace_collection):
11819
11823
  """Compute an expression.
@@ -11863,17 +11867,17 @@ class ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLasterrorOp
11863
11867
 
11864
11868
  if subnode_use_errno is not None:
11865
11869
  self.subnode_use_errno.collectVariableAccesses(emit_read, emit_write)
11866
- subnode_use_lasterror = self.subnode_use_lasterror
11870
+ subnode_use_last_error = self.subnode_use_last_error
11867
11871
 
11868
- if subnode_use_lasterror is not None:
11869
- self.subnode_use_lasterror.collectVariableAccesses(emit_read, emit_write)
11872
+ if subnode_use_last_error is not None:
11873
+ self.subnode_use_last_error.collectVariableAccesses(emit_read, emit_write)
11870
11874
 
11871
11875
 
11872
11876
  # Assign the names that are easier to import with a stable name.
11873
- ChildrenExpressionCtypesCdllMixin = ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLasterrorOptionalMixin
11877
+ ChildrenExpressionCtypesCdllMixin = ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLastErrorOptionalMixin
11874
11878
 
11875
11879
 
11876
- class ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLasterrorOptionalWinmodeOptionalMixin(
11880
+ class ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLastErrorOptionalWinmodeOptionalMixin(
11877
11881
  object
11878
11882
  ):
11879
11883
  # Mixins are not allowed to specify slots, pylint: disable=assigning-non-slot
@@ -11888,7 +11892,7 @@ class ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLasterrorOp
11888
11892
  mode,
11889
11893
  handle,
11890
11894
  use_errno,
11891
- use_lasterror,
11895
+ use_last_error,
11892
11896
  winmode,
11893
11897
  ):
11894
11898
  name.parent = self
@@ -11910,10 +11914,10 @@ class ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLasterrorOp
11910
11914
 
11911
11915
  self.subnode_use_errno = use_errno
11912
11916
 
11913
- if use_lasterror is not None:
11914
- use_lasterror.parent = self
11917
+ if use_last_error is not None:
11918
+ use_last_error.parent = self
11915
11919
 
11916
- self.subnode_use_lasterror = use_lasterror
11920
+ self.subnode_use_last_error = use_last_error
11917
11921
 
11918
11922
  if winmode is not None:
11919
11923
  winmode.parent = self
@@ -11940,7 +11944,7 @@ class ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLasterrorOp
11940
11944
  pass
11941
11945
  else:
11942
11946
  result.append(value)
11943
- value = self.subnode_use_lasterror
11947
+ value = self.subnode_use_last_error
11944
11948
  if value is None:
11945
11949
  pass
11946
11950
  else:
@@ -11963,7 +11967,7 @@ class ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLasterrorOp
11963
11967
  ("mode", self.subnode_mode),
11964
11968
  ("handle", self.subnode_handle),
11965
11969
  ("use_errno", self.subnode_use_errno),
11966
- ("use_lasterror", self.subnode_use_lasterror),
11970
+ ("use_last_error", self.subnode_use_last_error),
11967
11971
  ("winmode", self.subnode_winmode),
11968
11972
  )
11969
11973
 
@@ -12003,12 +12007,12 @@ class ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLasterrorOp
12003
12007
 
12004
12008
  return
12005
12009
 
12006
- value = self.subnode_use_lasterror
12010
+ value = self.subnode_use_last_error
12007
12011
  if old_node is value:
12008
12012
  if new_node is not None:
12009
12013
  new_node.parent = self
12010
12014
 
12011
- self.subnode_use_lasterror = new_node
12015
+ self.subnode_use_last_error = new_node
12012
12016
 
12013
12017
  return
12014
12018
 
@@ -12040,8 +12044,8 @@ class ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLasterrorOp
12040
12044
  "use_errno": self.subnode_use_errno.makeClone()
12041
12045
  if self.subnode_use_errno is not None
12042
12046
  else None,
12043
- "use_lasterror": self.subnode_use_lasterror.makeClone()
12044
- if self.subnode_use_lasterror is not None
12047
+ "use_last_error": self.subnode_use_last_error.makeClone()
12048
+ if self.subnode_use_last_error is not None
12045
12049
  else None,
12046
12050
  "winmode": self.subnode_winmode.makeClone()
12047
12051
  if self.subnode_winmode is not None
@@ -12066,9 +12070,9 @@ class ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLasterrorOp
12066
12070
  if self.subnode_use_errno is not None:
12067
12071
  self.subnode_use_errno.finalize()
12068
12072
  del self.subnode_use_errno
12069
- if self.subnode_use_lasterror is not None:
12070
- self.subnode_use_lasterror.finalize()
12071
- del self.subnode_use_lasterror
12073
+ if self.subnode_use_last_error is not None:
12074
+ self.subnode_use_last_error.finalize()
12075
+ del self.subnode_use_last_error
12072
12076
  if self.subnode_winmode is not None:
12073
12077
  self.subnode_winmode.finalize()
12074
12078
  del self.subnode_winmode
@@ -12121,10 +12125,10 @@ class ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLasterrorOp
12121
12125
 
12122
12126
  if subnode_use_errno is not None:
12123
12127
  self.subnode_use_errno.collectVariableAccesses(emit_read, emit_write)
12124
- subnode_use_lasterror = self.subnode_use_lasterror
12128
+ subnode_use_last_error = self.subnode_use_last_error
12125
12129
 
12126
- if subnode_use_lasterror is not None:
12127
- self.subnode_use_lasterror.collectVariableAccesses(emit_read, emit_write)
12130
+ if subnode_use_last_error is not None:
12131
+ self.subnode_use_last_error.collectVariableAccesses(emit_read, emit_write)
12128
12132
  subnode_winmode = self.subnode_winmode
12129
12133
 
12130
12134
  if subnode_winmode is not None:
@@ -12132,7 +12136,7 @@ class ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLasterrorOp
12132
12136
 
12133
12137
 
12134
12138
  # Assign the names that are easier to import with a stable name.
12135
- ChildrenExpressionCtypesCdllMixin = ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLasterrorOptionalWinmodeOptionalMixin
12139
+ ChildrenExpressionCtypesCdllMixin = ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLastErrorOptionalWinmodeOptionalMixin
12136
12140
 
12137
12141
 
12138
12142
  class ChildrenHavingNamePackageOptionalMixin(object):
@@ -71,8 +71,8 @@ from .ChildrenHavingMixins import (
71
71
  ChildHavingSMixin,
72
72
  ChildrenHavingFileModeOptionalBufferingOptionalEncodingOptionalErrorsOptionalNewlineOptionalClosefdOptionalOpenerOptionalMixin,
73
73
  ChildrenHavingGroupNameOptionalMixin,
74
- ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLasterrorOptionalMixin,
75
- ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLasterrorOptionalWinmodeOptionalMixin,
74
+ ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLastErrorOptionalMixin,
75
+ ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLastErrorOptionalWinmodeOptionalMixin,
76
76
  ChildrenHavingPackageOrRequirementResourceNameMixin,
77
77
  ChildrenHavingPackageResourceEncodingOptionalErrorsOptionalMixin,
78
78
  ChildrenHavingPackageResourceMixin,
@@ -263,7 +263,7 @@ hard_import_node_classes[ExpressionCtypesCdllRef] = ctypes_cdll_since_38_spec
263
263
 
264
264
 
265
265
  class ExpressionCtypesCdllSince38CallBase(
266
- ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLasterrorOptionalWinmodeOptionalMixin,
266
+ ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLastErrorOptionalWinmodeOptionalMixin,
267
267
  ExpressionBase,
268
268
  ):
269
269
  """Base class for CtypesCdllCall
@@ -278,7 +278,7 @@ class ExpressionCtypesCdllSince38CallBase(
278
278
  "mode|optional",
279
279
  "handle|optional",
280
280
  "use_errno|optional",
281
- "use_lasterror|optional",
281
+ "use_last_error|optional",
282
282
  "winmode|optional",
283
283
  )
284
284
 
@@ -287,15 +287,15 @@ class ExpressionCtypesCdllSince38CallBase(
287
287
  spec = ctypes_cdll_since_38_spec
288
288
 
289
289
  def __init__(
290
- self, name, mode, handle, use_errno, use_lasterror, winmode, source_ref
290
+ self, name, mode, handle, use_errno, use_last_error, winmode, source_ref
291
291
  ):
292
- ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLasterrorOptionalWinmodeOptionalMixin.__init__(
292
+ ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLastErrorOptionalWinmodeOptionalMixin.__init__(
293
293
  self,
294
294
  name=name,
295
295
  mode=mode,
296
296
  handle=handle,
297
297
  use_errno=use_errno,
298
- use_lasterror=use_lasterror,
298
+ use_last_error=use_last_error,
299
299
  winmode=winmode,
300
300
  )
301
301
 
@@ -310,7 +310,7 @@ class ExpressionCtypesCdllSince38CallBase(
310
310
  self.subnode_mode,
311
311
  self.subnode_handle,
312
312
  self.subnode_use_errno,
313
- self.subnode_use_lasterror,
313
+ self.subnode_use_last_error,
314
314
  self.subnode_winmode,
315
315
  )
316
316
  ):
@@ -333,7 +333,7 @@ class ExpressionCtypesCdllSince38CallBase(
333
333
 
334
334
 
335
335
  class ExpressionCtypesCdllBefore38CallBase(
336
- ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLasterrorOptionalMixin,
336
+ ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLastErrorOptionalMixin,
337
337
  ExpressionBase,
338
338
  ):
339
339
  """Base class for CtypesCdllCall
@@ -348,21 +348,21 @@ class ExpressionCtypesCdllBefore38CallBase(
348
348
  "mode|optional",
349
349
  "handle|optional",
350
350
  "use_errno|optional",
351
- "use_lasterror|optional",
351
+ "use_last_error|optional",
352
352
  )
353
353
 
354
354
  __slots__ = ("attempted",)
355
355
 
356
356
  spec = ctypes_cdll_before_38_spec
357
357
 
358
- def __init__(self, name, mode, handle, use_errno, use_lasterror, source_ref):
359
- ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLasterrorOptionalMixin.__init__(
358
+ def __init__(self, name, mode, handle, use_errno, use_last_error, source_ref):
359
+ ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLastErrorOptionalMixin.__init__(
360
360
  self,
361
361
  name=name,
362
362
  mode=mode,
363
363
  handle=handle,
364
364
  use_errno=use_errno,
365
- use_lasterror=use_lasterror,
365
+ use_last_error=use_last_error,
366
366
  )
367
367
 
368
368
  ExpressionBase.__init__(self, source_ref)
@@ -376,7 +376,7 @@ class ExpressionCtypesCdllBefore38CallBase(
376
376
  self.subnode_mode,
377
377
  self.subnode_handle,
378
378
  self.subnode_use_errno,
379
- self.subnode_use_lasterror,
379
+ self.subnode_use_last_error,
380
380
  )
381
381
  ):
382
382
  trace_collection.onExceptionRaiseExit(BaseException)
@@ -3,7 +3,6 @@
3
3
 
4
4
  """ Nodes that build and operate on lists."""
5
5
 
6
-
7
6
  # from .ExpressionBasesGenerated import ChildrenExpressionListOperationExtendMixin
8
7
  from .ChildrenHavingMixins import (
9
8
  ChildHavingListArgMixin,
@@ -277,17 +276,28 @@ class ExpressionListOperationInsert(
277
276
  # This lets the value added to the list escape.
278
277
  self.subnode_item.onContentEscapes(trace_collection)
279
278
 
279
+ # Could raise TypeError from wrong index type.
280
+ if self.mayRaiseExceptionOperation():
281
+ trace_collection.onExceptionRaiseExit(TypeError)
282
+
280
283
  # it raises no index error, just appends
281
284
  return self, None, None
282
285
 
283
286
  def mayRaiseException(self, exception_type):
284
- return self.subnode_list_arg.mayRaiseException(exception_type)
287
+ return (
288
+ self.subnode_list_arg.mayRaiseException(exception_type)
289
+ or self.mayRaiseExceptionOperation()
290
+ or self.subnode_index.mayRaiseException(exception_type)
291
+ or self.subnode_item.mayRaiseException(exception_type)
292
+ )
285
293
 
286
294
  def mayRaiseExceptionOperation(self):
287
295
  # TODO: We do not yet have isIndexable from the type shape.
296
+ # Note that any index value will do for insert, it just has
297
+ # to be an integer.
288
298
  return (
289
- self.subnode_item.isExpressionConstantRef()
290
- and self.subnode_item.isIndexConstant()
299
+ self.subnode_index.isExpressionConstantRef()
300
+ and self.subnode_index.isIndexConstant()
291
301
  )
292
302
 
293
303
 
@@ -14,7 +14,6 @@ it being used.
14
14
 
15
15
  import ast
16
16
  import functools
17
- import importlib
18
17
  import inspect
19
18
  import os
20
19
  import sys
@@ -106,6 +105,15 @@ _module_config_constants = {}
106
105
  _module_config_variables = {}
107
106
 
108
107
 
108
+ def _getImportLibModule():
109
+ try:
110
+ import importlib
111
+ except ImportError:
112
+ return None
113
+ else:
114
+ return importlib
115
+
116
+
109
117
  def _getEvaluationContext():
110
118
  # Using global here, as this is really a singleton, in the form of a module,
111
119
  # pylint: disable=global-statement
@@ -145,7 +153,7 @@ def _getEvaluationContext():
145
153
  # Frequent used modules
146
154
  "sys": sys,
147
155
  "os": os,
148
- "importlib": importlib,
156
+ "importlib": _getImportLibModule(),
149
157
  "appdirs": getAppdirsModule(),
150
158
  # Python version string
151
159
  "python_version_str": python_version_str,
@@ -1259,6 +1267,14 @@ except ImportError:
1259
1267
  # Virtual method, pylint: disable=no-self-use,unused-argument
1260
1268
  return False
1261
1269
 
1270
+ def onClassBodyParsing(self, module_name, class_name, node):
1271
+ # Virtual method, pylint: disable=no-self-use,unused-argument
1272
+ """Provide a different class body for the class of that module.
1273
+
1274
+ Should return a boolean, indicating if any actual change was done.
1275
+ """
1276
+ return False
1277
+
1262
1278
  def getCacheContributionValues(self, module_name):
1263
1279
  """Provide values that represent the include of a plugin on the compilation.
1264
1280
 
nuitka/plugins/Plugins.py CHANGED
@@ -1354,6 +1354,19 @@ class Plugins(object):
1354
1354
  body=body,
1355
1355
  )
1356
1356
 
1357
+ @classmethod
1358
+ def onClassBodyParsing(cls, provider, class_name, node):
1359
+ module_name = provider.getParentModule().getFullName()
1360
+
1361
+ for plugin in getActivePlugins():
1362
+ # TODO: Could record what classes got modified by what plugin
1363
+ # and in what way checking the return value
1364
+ plugin.onClassBodyParsing(
1365
+ module_name=module_name,
1366
+ class_name=class_name,
1367
+ node=node,
1368
+ )
1369
+
1357
1370
  @classmethod
1358
1371
  def getCacheContributionValues(cls, module_name):
1359
1372
  for plugin in getActivePlugins():
@@ -535,6 +535,66 @@ Error, cannot exec module '%s', context code '%s' due to: %s"""
535
535
 
536
536
  return result
537
537
 
538
+ def _onClassBodyParsing(self, module_name, anti_bloat_config, class_name, node):
539
+ replace_code = anti_bloat_config.get("change_class", {}).get(class_name)
540
+
541
+ if replace_code == "un-usable":
542
+ replace_code = """
543
+ '''
544
+ class %(class_name)s:
545
+ def __init__(self, *args, **kwargs):
546
+ raise RuntimeError("Must not call %(module_name)s.%(class_name)s")
547
+ '''
548
+ """ % {
549
+ "module_name": module_name,
550
+ "class_name": class_name,
551
+ }
552
+
553
+ if replace_code is None:
554
+ return False
555
+
556
+ replacement = self.evaluateExpression(
557
+ full_name=module_name,
558
+ expression=replace_code,
559
+ config_name="module '%s' config 'change_class' of '%s'"
560
+ % (module_name, class_name),
561
+ extra_context=self._getContextCode(
562
+ module_name=module_name, anti_bloat_config=anti_bloat_config
563
+ ),
564
+ single_value=True,
565
+ )
566
+
567
+ # Single node is required, extract the generated module body with
568
+ # single expression only statement value or a function body.
569
+ replacement = ast.parse(replacement).body[0]
570
+
571
+ node.body[:] = replacement.body
572
+ node.bases = replacement.bases
573
+
574
+ if self.show_changes:
575
+ self.info(
576
+ "Updated module '%s' class '%s'." % (module_name.asString(), class_name)
577
+ )
578
+
579
+ return True
580
+
581
+ def onClassBodyParsing(self, module_name, class_name, node):
582
+ result = False
583
+
584
+ config = self.config.get(module_name, section="anti-bloat")
585
+
586
+ if config:
587
+ for anti_bloat_config in config:
588
+ if self._onClassBodyParsing(
589
+ module_name=module_name,
590
+ anti_bloat_config=anti_bloat_config,
591
+ class_name=class_name,
592
+ node=node,
593
+ ):
594
+ result = True
595
+
596
+ return result
597
+
538
598
  def _getModuleBloatModeOverrides(self, using_module_name, intended_module_name):
539
599
  while 1:
540
600
  config = self.config.get(using_module_name, section="anti-bloat")
@@ -90,6 +90,38 @@
90
90
  patterns:
91
91
  - 'public.xml'
92
92
 
93
+ - module-name: 'antlr4.FileStream' # checksum: b7fe4fce
94
+ anti-bloat:
95
+ - description: 'remove unittest reference'
96
+ replacements_plain:
97
+ 'import unittest': ''
98
+ change_class:
99
+ 'TestFileStream': 'un-usable'
100
+
101
+ - module-name: 'antlr4.InputStream' # checksum: e9e7bd9b
102
+ anti-bloat:
103
+ - description: 'remove unittest reference'
104
+ replacements_plain:
105
+ 'import unittest': ''
106
+ change_class:
107
+ 'TestInputStream': 'un-usable'
108
+
109
+ - module-name: 'antlr4.IntervalSet' # checksum: 214ba83e
110
+ anti-bloat:
111
+ - description: 'remove unittest reference'
112
+ replacements_plain:
113
+ 'import unittest': ''
114
+ change_class:
115
+ 'TestIntervalSet': 'un-usable'
116
+
117
+ - module-name: 'antlr4.Recognizer' # checksum: 6e605dda
118
+ anti-bloat:
119
+ - description: 'remove unittest reference'
120
+ replacements_plain:
121
+ 'import unittest': ''
122
+ change_class:
123
+ 'Test': 'un-usable'
124
+
93
125
  - module-name: 'anyio._core._eventloop' # checksum: c0b82a1e
94
126
  implicit-imports:
95
127
  - depends:
@@ -512,7 +544,7 @@
512
544
  - depends:
513
545
  - 'cassandra.compat'
514
546
 
515
- - module-name: 'cefpython3' # checksum: 623c0628
547
+ - module-name: 'cefpython3' # checksum: cd02718a
516
548
  data-files:
517
549
  dirs:
518
550
  - 'locales'
@@ -526,11 +558,20 @@
526
558
  prefixes:
527
559
  - 'subprocess'
528
560
  executable: 'yes'
529
- when: 'win32'
530
561
  - from_filenames:
531
562
  prefixes:
532
563
  - ''
533
- when: 'win32'
564
+
565
+ implicit-imports:
566
+ - depends:
567
+ - 'urllib.request'
568
+
569
+ - module-name: 'celery' # checksum: 7d07a2d1
570
+ anti-bloat:
571
+ - description: 'remove IPython reference'
572
+ no-auto-follow:
573
+ 'IPython': 'ignore'
574
+ when: 'not use_ipython'
534
575
 
535
576
  - module-name: 'certifi' # checksum: 73df1a1e
536
577
  data-files:
@@ -1037,6 +1078,11 @@
1037
1078
  - depends:
1038
1079
  - 'Equation.equation_*'
1039
1080
 
1081
+ - module-name: 'eth_utils' # checksum: c62fca1b
1082
+ data-files:
1083
+ dirs:
1084
+ - '__json'
1085
+
1040
1086
  - module-name: 'evaluate.config' # checksum: becc1d28
1041
1087
  anti-bloat:
1042
1088
  - description: 'workaround python version test not compile time recognized'
@@ -1538,6 +1584,17 @@
1538
1584
  - description: 'workaround hard module import attribute bug'
1539
1585
  append_plain: 'from .utils.tqdm import tqdm'
1540
1586
 
1587
+ - module-name: 'hydra' # checksum: 380a0a91
1588
+ data-files:
1589
+ dirs:
1590
+ - 'conf'
1591
+
1592
+ - module-name: 'hydra.core.plugins' # checksum: f4d9feae
1593
+ implicit-imports:
1594
+ - depends:
1595
+ - 'hydra._internal.core_plugins.*'
1596
+ - 'hydra_plugins.*'
1597
+
1541
1598
  - module-name: 'imageio.core.imopen' # checksum: 7af58240
1542
1599
  anti-bloat:
1543
1600
  - replacements_plain:
@@ -3493,6 +3550,21 @@
3493
3550
  change_function:
3494
3551
  'set_break': 'un-callable'
3495
3552
 
3553
+ - module-name: 'pypdfium2' # checksum: 91e9a452
3554
+ data-files:
3555
+ patterns:
3556
+ - 'version.json'
3557
+
3558
+ - module-name: 'pypdfium2_raw' # checksum: 3c8f2a8f
3559
+ data-files:
3560
+ patterns:
3561
+ - 'version.json'
3562
+
3563
+ dlls:
3564
+ - from_filenames:
3565
+ prefixes:
3566
+ - 'pdfium'
3567
+
3496
3568
  - module-name: 'pyphen' # checksum: 708b31da
3497
3569
  data-files:
3498
3570
  dirs:
@@ -4270,6 +4342,18 @@
4270
4342
  patterns:
4271
4343
  - 'words.txt'
4272
4344
 
4345
+ - module-name: 'selenium' # checksum: 19747624
4346
+ data-files:
4347
+ dirs:
4348
+ - '.'
4349
+ dlls:
4350
+ - from_filenames:
4351
+ relative_path: 'webdriver/common/windows'
4352
+ prefixes:
4353
+ - 'selenium-manager'
4354
+ executable: 'yes'
4355
+ when: 'win32'
4356
+
4273
4357
  - module-name: 'sentence_transformers.SentenceTransformer' # checksum: c6062648
4274
4358
  implicit-imports:
4275
4359
  - depends:
@@ -6638,6 +6722,11 @@
6638
6722
  'from distributed import Client': 'raise ImportError'
6639
6723
  when: 'not use_dask'
6640
6724
 
6725
+ - module-name: 'twofish' # checksum: c8ae9b1e
6726
+ implicit-imports:
6727
+ - depends:
6728
+ - '_twofish'
6729
+
6641
6730
  - module-name: 'tzdata' # checksum: dae3c0e3
6642
6731
  data-files:
6643
6732
  dirs:
@@ -147,7 +147,7 @@ ctypes_cdll_since_38_spec = BuiltinParameterSpec(
147
147
  "mode",
148
148
  "handle",
149
149
  "use_errno",
150
- "use_lasterror",
150
+ "use_last_error",
151
151
  "winmode",
152
152
  ),
153
153
  default_count=5,
@@ -160,7 +160,7 @@ ctypes_cdll_before_38_spec = BuiltinParameterSpec(
160
160
  "mode",
161
161
  "handle",
162
162
  "use_errno",
163
- "use_lasterror",
163
+ "use_last_error",
164
164
  ),
165
165
  default_count=4,
166
166
  )
@@ -45,6 +45,7 @@ from nuitka.nodes.VariableReleaseNodes import (
45
45
  makeStatementReleaseVariable,
46
46
  makeStatementsReleaseVariables,
47
47
  )
48
+ from nuitka.plugins.Plugins import Plugins
48
49
  from nuitka.PythonVersions import python_version
49
50
 
50
51
  from .ReformulationClasses3 import buildClassNode3
@@ -63,6 +64,10 @@ from .TreeHelpers import (
63
64
  def buildClassNode2(provider, node, source_ref):
64
65
  # This function is the Python2 special case with special re-formulation as
65
66
  # according to Developer Manual, and it's very detailed, pylint: disable=too-many-locals
67
+
68
+ # First, allow plugins to modify the code if they want to.
69
+ Plugins.onClassBodyParsing(provider=provider, class_name=node.name, node=node)
70
+
66
71
  class_statement_nodes, class_doc = extractDocFromBody(node)
67
72
 
68
73
  function_body = ExpressionClassBodyP2(
@@ -79,6 +79,7 @@ from nuitka.nodes.VariableRefNodes import (
79
79
  )
80
80
  from nuitka.nodes.VariableReleaseNodes import makeStatementsReleaseVariables
81
81
  from nuitka.Options import isExperimental
82
+ from nuitka.plugins.Plugins import Plugins
82
83
  from nuitka.PythonVersions import python_version
83
84
  from nuitka.specs.ParameterSpecs import ParameterSpec
84
85
 
@@ -126,6 +127,10 @@ def buildClassNode3(provider, node, source_ref):
126
127
 
127
128
  # This function is the Python3 special case with special re-formulation as
128
129
  # according to Developer Manual.
130
+
131
+ # First, allow plugins to modify the code if they want to.
132
+ Plugins.onClassBodyParsing(provider=provider, class_name=node.name, node=node)
133
+
129
134
  class_statement_nodes, class_doc = extractDocFromBody(node)
130
135
 
131
136
  # We need a scope for the temporary variables, and they might be closured.
@@ -146,7 +146,7 @@ def decideFunctionCompilationMode(decorators):
146
146
  decorator.isExpressionCall()
147
147
  and decorator.subnode_called.isExpressionVariableNameRef()
148
148
  ):
149
- if decorator.subnode_called.variable_name == "pyqtSlot":
149
+ if decorator.subnode_called.variable_name in ("pyqtSlot", "asyncSlot"):
150
150
  return "bytecode"
151
151
 
152
152
  return "compiled"