Nuitka-winsvc 1.8__cp311-cp311-win_amd64.whl → 2.4.8__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-1.8.data/scripts/nuitka-run.bat → Nuitka_winsvc-2.4.8.data/scripts/nuitka-run.cmd +9 -9
- Nuitka_winsvc-1.8.data/scripts/nuitka.bat → Nuitka_winsvc-2.4.8.data/scripts/nuitka.cmd +15 -15
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/METADATA +4 -3
- Nuitka_winsvc-2.4.8.dist-info/RECORD +954 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/WHEEL +1 -1
- nuitka/Builtins.py +18 -17
- nuitka/BytecodeCaching.py +24 -20
- nuitka/Bytecodes.py +23 -19
- nuitka/CacheCleanup.py +28 -23
- nuitka/Constants.py +19 -17
- nuitka/Errors.py +23 -17
- nuitka/HardImportRegistry.py +400 -0
- nuitka/MainControl.py +200 -112
- nuitka/ModuleRegistry.py +83 -20
- nuitka/OptionParsing.py +368 -175
- nuitka/Options.py +632 -213
- nuitka/OutputDirectories.py +40 -21
- nuitka/PostProcessing.py +73 -50
- nuitka/Progress.py +58 -24
- nuitka/PythonFlavors.py +141 -32
- nuitka/PythonOperators.py +18 -17
- nuitka/PythonVersions.py +106 -19
- nuitka/Serialization.py +68 -55
- nuitka/SourceCodeReferences.py +19 -17
- nuitka/Tracing.py +108 -70
- nuitka/TreeXML.py +31 -26
- nuitka/Variables.py +39 -41
- nuitka/Version.py +21 -7
- nuitka/__init__.py +5 -4
- nuitka/__main__.py +95 -29
- nuitka/__past__.py +44 -34
- nuitka/build/Backend.scons +202 -140
- nuitka/build/CCompilerVersion.scons +39 -31
- nuitka/build/DataComposerInterface.py +20 -17
- nuitka/build/Onefile.scons +50 -54
- nuitka/build/SconsCaching.py +93 -90
- nuitka/build/SconsCompilerSettings.py +157 -69
- nuitka/build/SconsHacks.py +25 -19
- nuitka/build/SconsInterface.py +154 -54
- nuitka/build/SconsProgress.py +19 -18
- nuitka/build/SconsSpawn.py +62 -33
- nuitka/build/SconsUtils.py +147 -55
- nuitka/build/__init__.py +5 -4
- nuitka/build/include/nuitka/allocator.h +105 -22
- nuitka/build/include/nuitka/builtins.h +17 -17
- nuitka/build/include/nuitka/calling.h +18 -18
- nuitka/build/include/nuitka/checkers.h +17 -18
- nuitka/build/include/nuitka/checksum_tools.h +14 -19
- nuitka/build/include/nuitka/compiled_asyncgen.h +18 -18
- nuitka/build/include/nuitka/compiled_cell.h +33 -18
- nuitka/build/include/nuitka/compiled_coroutine.h +18 -18
- nuitka/build/include/nuitka/compiled_frame.h +91 -53
- nuitka/build/include/nuitka/compiled_function.h +42 -20
- nuitka/build/include/nuitka/compiled_generator.h +24 -18
- nuitka/build/include/nuitka/compiled_method.h +17 -18
- nuitka/build/include/nuitka/constants.h +29 -18
- nuitka/build/include/nuitka/constants_blob.h +17 -17
- nuitka/build/include/nuitka/environment_variables.h +30 -0
- nuitka/build/include/nuitka/environment_variables_system.h +45 -0
- nuitka/build/include/nuitka/exception_groups.h +23 -26
- nuitka/build/include/nuitka/exceptions.h +593 -190
- nuitka/build/include/nuitka/filesystem_paths.h +26 -20
- nuitka/build/include/nuitka/freelists.h +38 -18
- nuitka/build/include/nuitka/helper/attributes.h +24 -18
- nuitka/build/include/nuitka/helper/boolean.h +17 -17
- nuitka/build/include/nuitka/helper/bytearrays.h +17 -17
- nuitka/build/include/nuitka/helper/bytes.h +14 -15
- nuitka/build/include/nuitka/helper/calling_generated.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_eq.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_ge.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_gt.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_le.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_lt.h +17 -17
- nuitka/build/include/nuitka/helper/comparisons_ne.h +17 -17
- nuitka/build/include/nuitka/helper/complex.h +17 -17
- nuitka/build/include/nuitka/helper/dictionaries.h +24 -22
- nuitka/build/include/nuitka/helper/floats.h +17 -18
- nuitka/build/include/nuitka/helper/import_hard.h +25 -17
- nuitka/build/include/nuitka/helper/indexes.h +17 -18
- nuitka/build/include/nuitka/helper/ints.h +32 -20
- nuitka/build/include/nuitka/helper/iterators.h +17 -17
- nuitka/build/include/nuitka/helper/lists.h +26 -24
- nuitka/build/include/nuitka/helper/lists_generated.h +22 -22
- nuitka/build/include/nuitka/helper/mappings.h +17 -18
- nuitka/build/include/nuitka/helper/operations.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_add.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_bitand.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_bitor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_bitxor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_divmod.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_floordiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_lshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_matmult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_mod.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_mult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_olddiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_pow.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_rshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_sub.h +17 -17
- nuitka/build/include/nuitka/helper/operations_binary_truediv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_builtin_types.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_add.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_bitand.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_bitor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_bitxor.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_floordiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_lshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_matmult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_mod.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_mult.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_olddiv.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_pow.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_rshift.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_sub.h +17 -17
- nuitka/build/include/nuitka/helper/operations_inplace_truediv.h +17 -17
- nuitka/build/include/nuitka/helper/raising.h +29 -17
- nuitka/build/include/nuitka/helper/rangeobjects.h +17 -17
- nuitka/build/include/nuitka/helper/richcomparisons.h +14 -14
- nuitka/build/include/nuitka/helper/sequences.h +19 -13
- nuitka/build/include/nuitka/helper/sets.h +11 -12
- nuitka/build/include/nuitka/helper/slices.h +31 -25
- nuitka/build/include/nuitka/helper/strings.h +16 -17
- nuitka/build/include/nuitka/helper/subscripts.h +18 -201
- nuitka/build/include/nuitka/helper/tuples.h +64 -52
- nuitka/build/include/nuitka/helpers.h +38 -20
- nuitka/build/include/nuitka/importing.h +28 -21
- nuitka/build/include/nuitka/jit_sources.h +25 -0
- nuitka/build/include/nuitka/prelude.h +128 -46
- nuitka/build/include/nuitka/printing.h +22 -17
- nuitka/build/include/nuitka/python_pgo.h +19 -18
- nuitka/build/include/nuitka/safe_string_ops.h +20 -18
- nuitka/build/include/nuitka/threading.h +32 -33
- nuitka/build/include/nuitka/tracing.h +28 -18
- nuitka/build/include/nuitka/type_aliases.h +27 -0
- nuitka/build/include/nuitka/unfreezing.h +29 -23
- nuitka/build/inline_copy/bin/scons.py +14 -0
- nuitka/build/inline_copy/lib/scons-4.3.0/SCons/Variables/ListVariable.py +6 -6
- nuitka/build/inline_copy/pkg_resources/pkg_resources/__init__.py +0 -3
- nuitka/build/inline_copy/python_hacl/LICENSE.txt +201 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.c +1430 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.h +66 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.c +463 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.h +66 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.c +1273 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.h +204 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.c +734 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.h +131 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Streaming_Types.h +83 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt128_Verified.h +346 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt_8_16_32_64.h +107 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/fstar_uint128_struct_endianness.h +68 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/internal/target.h +293 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/lowstar_endianness.h +231 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/types.h +14 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_MD5.h +56 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA1.h +56 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA2.h +164 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA3.h +65 -0
- nuitka/build/inline_copy/python_hacl/hacl_312/python_hacl_namespaces.h +89 -0
- nuitka/build/inline_copy/tqdm/tqdm/__init__.py +2 -2
- nuitka/build/inline_copy/tqdm/tqdm/_monitor.py +4 -1
- nuitka/build/inline_copy/tqdm/tqdm/utils.py +14 -8
- nuitka/build/inline_copy/tqdm/tqdm/version.py +1 -8
- nuitka/build/inline_copy/zlib/LICENSE +22 -0
- nuitka/build/inline_copy/zlib/crc32.c +1049 -0
- nuitka/build/inline_copy/zlib/crc32.h +9446 -0
- nuitka/build/inline_copy/zlib/zconf.h +551 -0
- nuitka/build/inline_copy/zlib/zlib.h +1938 -0
- nuitka/build/inline_copy/zlib/zutil.h +275 -0
- nuitka/build/static_src/CompiledAsyncgenType.c +176 -182
- nuitka/build/static_src/CompiledCellType.c +63 -40
- nuitka/build/static_src/CompiledCodeHelpers.c +181 -128
- nuitka/build/static_src/CompiledCoroutineType.c +196 -203
- nuitka/build/static_src/CompiledFrameType.c +287 -133
- nuitka/build/static_src/CompiledFunctionType.c +389 -95
- nuitka/build/static_src/CompiledGeneratorType.c +376 -252
- nuitka/build/static_src/CompiledGeneratorTypeUncompiledIntegration.c +185 -198
- nuitka/build/static_src/CompiledMethodType.c +83 -71
- nuitka/build/static_src/HelpersAllocator.c +88 -19
- nuitka/build/static_src/HelpersAttributes.c +33 -54
- nuitka/build/static_src/HelpersBuiltin.c +43 -33
- nuitka/build/static_src/HelpersBuiltinTypeMethods.c +17 -17
- nuitka/build/static_src/HelpersBytes.c +19 -20
- nuitka/build/static_src/HelpersCalling.c +33 -30
- nuitka/build/static_src/HelpersCallingGenerated.c +1000 -181
- nuitka/build/static_src/HelpersChecksumTools.c +35 -21
- nuitka/build/static_src/HelpersClasses.c +17 -17
- nuitka/build/static_src/HelpersComparisonEq.c +518 -492
- nuitka/build/static_src/HelpersComparisonEqUtils.c +21 -19
- nuitka/build/static_src/HelpersComparisonGe.c +513 -497
- nuitka/build/static_src/HelpersComparisonGt.c +512 -496
- nuitka/build/static_src/HelpersComparisonLe.c +513 -497
- nuitka/build/static_src/HelpersComparisonLt.c +512 -496
- nuitka/build/static_src/HelpersComparisonNe.c +520 -492
- nuitka/build/static_src/HelpersConsole.c +96 -0
- nuitka/build/static_src/HelpersConstantsBlob.c +542 -519
- nuitka/build/static_src/HelpersDeepcopy.c +33 -33
- nuitka/build/static_src/HelpersDictionaries.c +51 -29
- nuitka/build/static_src/HelpersDictionariesGenerated.c +177 -68
- nuitka/build/static_src/HelpersDumpBacktraces.c +63 -0
- nuitka/build/static_src/HelpersEnvironmentVariables.c +65 -0
- nuitka/build/static_src/HelpersEnvironmentVariablesSystem.c +93 -0
- nuitka/build/static_src/HelpersExceptions.c +161 -50
- nuitka/build/static_src/HelpersFiles.c +37 -17
- nuitka/build/static_src/HelpersFilesystemPaths.c +292 -181
- nuitka/build/static_src/HelpersFloats.c +37 -31
- nuitka/build/static_src/HelpersHeapStorage.c +21 -17
- nuitka/build/static_src/HelpersImport.c +48 -20
- nuitka/build/static_src/HelpersImportHard.c +53 -17
- nuitka/build/static_src/HelpersJitSources.c +46 -0
- nuitka/build/static_src/HelpersLists.c +140 -50
- nuitka/build/static_src/HelpersListsGenerated.c +41 -41
- nuitka/build/static_src/HelpersMappings.c +17 -17
- nuitka/build/static_src/HelpersMatching.c +137 -51
- nuitka/build/static_src/HelpersOperationBinaryAdd.c +173 -146
- nuitka/build/static_src/HelpersOperationBinaryAddUtils.c +99 -52
- nuitka/build/static_src/HelpersOperationBinaryBitand.c +50 -50
- nuitka/build/static_src/HelpersOperationBinaryBitor.c +50 -50
- nuitka/build/static_src/HelpersOperationBinaryBitxor.c +50 -50
- nuitka/build/static_src/HelpersOperationBinaryDivmod.c +41 -41
- nuitka/build/static_src/HelpersOperationBinaryDivmodUtils.c +17 -17
- nuitka/build/static_src/HelpersOperationBinaryFloordiv.c +41 -41
- nuitka/build/static_src/HelpersOperationBinaryInplaceAdd.c +20 -21
- nuitka/build/static_src/HelpersOperationBinaryLshift.c +47 -47
- nuitka/build/static_src/HelpersOperationBinaryMatmult.c +24 -24
- nuitka/build/static_src/HelpersOperationBinaryMod.c +107 -107
- nuitka/build/static_src/HelpersOperationBinaryMult.c +81 -75
- nuitka/build/static_src/HelpersOperationBinaryMultUtils.c +33 -30
- nuitka/build/static_src/HelpersOperationBinaryOlddiv.c +41 -41
- nuitka/build/static_src/HelpersOperationBinaryPow.c +44 -44
- nuitka/build/static_src/HelpersOperationBinaryPowUtils.c +12 -12
- nuitka/build/static_src/HelpersOperationBinaryRshift.c +47 -47
- nuitka/build/static_src/HelpersOperationBinarySub.c +80 -80
- nuitka/build/static_src/HelpersOperationBinaryTruediv.c +41 -41
- nuitka/build/static_src/HelpersOperationInplaceAdd.c +171 -153
- nuitka/build/static_src/HelpersOperationInplaceAddUtils.c +24 -22
- nuitka/build/static_src/HelpersOperationInplaceBitand.c +53 -53
- nuitka/build/static_src/HelpersOperationInplaceBitor.c +53 -53
- nuitka/build/static_src/HelpersOperationInplaceBitxor.c +53 -53
- nuitka/build/static_src/HelpersOperationInplaceFloordiv.c +62 -62
- nuitka/build/static_src/HelpersOperationInplaceLshift.c +44 -44
- nuitka/build/static_src/HelpersOperationInplaceMatmult.c +37 -37
- nuitka/build/static_src/HelpersOperationInplaceMod.c +134 -134
- nuitka/build/static_src/HelpersOperationInplaceMult.c +78 -78
- nuitka/build/static_src/HelpersOperationInplaceOlddiv.c +62 -62
- nuitka/build/static_src/HelpersOperationInplacePow.c +62 -62
- nuitka/build/static_src/HelpersOperationInplaceRshift.c +44 -44
- nuitka/build/static_src/HelpersOperationInplaceSub.c +112 -112
- nuitka/build/static_src/HelpersOperationInplaceTruediv.c +62 -62
- nuitka/build/static_src/HelpersProfiling.c +24 -23
- nuitka/build/static_src/HelpersPythonPgo.c +22 -22
- nuitka/build/static_src/HelpersRaising.c +88 -20
- nuitka/build/static_src/HelpersSafeStrings.c +34 -22
- nuitka/build/static_src/HelpersSequences.c +18 -19
- nuitka/build/static_src/HelpersSlices.c +29 -23
- nuitka/build/static_src/HelpersStrings.c +234 -37
- nuitka/build/static_src/HelpersTuples.c +46 -34
- nuitka/build/static_src/HelpersTypes.c +68 -23
- nuitka/build/static_src/InspectPatcher.c +108 -27
- nuitka/build/static_src/MainProgram.c +359 -263
- nuitka/build/static_src/MetaPathBasedLoader.c +367 -242
- nuitka/build/static_src/MetaPathBasedLoaderImportlibMetadataDistribution.c +39 -26
- nuitka/build/static_src/MetaPathBasedLoaderResourceReader.c +17 -18
- nuitka/build/static_src/MetaPathBasedLoaderResourceReaderFiles.c +97 -22
- nuitka/build/static_src/OnefileBootstrap.c +276 -164
- nuitka/build/static_src/OnefileSplashScreen.cpp +51 -27
- nuitka/code_generation/AsyncgenCodes.py +19 -17
- nuitka/code_generation/AttributeCodes.py +31 -27
- nuitka/code_generation/BinaryOperationHelperDefinitions.py +24 -20
- nuitka/code_generation/BranchCodes.py +19 -17
- nuitka/code_generation/BuiltinCodes.py +20 -17
- nuitka/code_generation/CallCodes.py +19 -17
- nuitka/code_generation/ClassCodes.py +19 -17
- nuitka/code_generation/CodeGeneration.py +48 -27
- nuitka/code_generation/CodeHelperSelection.py +19 -17
- nuitka/code_generation/CodeHelpers.py +24 -20
- nuitka/code_generation/CodeObjectCodes.py +34 -24
- nuitka/code_generation/ComparisonCodes.py +38 -20
- nuitka/code_generation/ComparisonHelperDefinitions.py +19 -17
- nuitka/code_generation/ConditionalCodes.py +19 -17
- nuitka/code_generation/ConstantCodes.py +82 -28
- nuitka/code_generation/Contexts.py +152 -26
- nuitka/code_generation/CoroutineCodes.py +19 -17
- nuitka/code_generation/CtypesCodes.py +19 -17
- nuitka/code_generation/DictCodes.py +25 -23
- nuitka/code_generation/Emission.py +21 -18
- nuitka/code_generation/ErrorCodes.py +27 -33
- nuitka/code_generation/EvalCodes.py +24 -20
- nuitka/code_generation/ExceptionCodes.py +27 -18
- nuitka/code_generation/ExpressionCTypeSelectionHelpers.py +20 -17
- nuitka/code_generation/ExpressionCodes.py +19 -17
- nuitka/code_generation/FrameCodes.py +24 -20
- nuitka/code_generation/FunctionCodes.py +24 -21
- nuitka/code_generation/GeneratorCodes.py +23 -20
- nuitka/code_generation/GlobalConstants.py +43 -23
- nuitka/code_generation/GlobalsLocalsCodes.py +21 -19
- nuitka/code_generation/IdCodes.py +19 -17
- nuitka/code_generation/ImportCodes.py +90 -50
- nuitka/code_generation/Indentation.py +23 -22
- nuitka/code_generation/IndexCodes.py +19 -17
- nuitka/code_generation/InjectCCodes.py +14 -12
- nuitka/code_generation/IntegerCodes.py +19 -17
- nuitka/code_generation/IteratorCodes.py +19 -17
- nuitka/code_generation/JitCodes.py +44 -0
- nuitka/code_generation/LabelCodes.py +19 -17
- nuitka/code_generation/LineNumberCodes.py +19 -17
- nuitka/code_generation/ListCodes.py +32 -36
- nuitka/code_generation/LoaderCodes.py +22 -17
- nuitka/code_generation/LocalsDictCodes.py +56 -32
- nuitka/code_generation/LoopCodes.py +19 -17
- nuitka/code_generation/MatchCodes.py +42 -22
- nuitka/code_generation/ModuleCodes.py +43 -25
- nuitka/code_generation/Namify.py +27 -23
- nuitka/code_generation/NetworkxCodes.py +51 -0
- nuitka/code_generation/OperationCodes.py +29 -31
- nuitka/code_generation/PackageResourceCodes.py +59 -23
- nuitka/code_generation/PrintCodes.py +19 -17
- nuitka/code_generation/PythonAPICodes.py +19 -17
- nuitka/code_generation/RaisingCodes.py +19 -17
- nuitka/code_generation/Reports.py +19 -17
- nuitka/code_generation/ReturnCodes.py +19 -17
- nuitka/code_generation/SetCodes.py +19 -17
- nuitka/code_generation/SliceCodes.py +22 -20
- nuitka/code_generation/StringCodes.py +19 -17
- nuitka/code_generation/SubscriptCodes.py +24 -30
- nuitka/code_generation/TensorflowCodes.py +54 -0
- nuitka/code_generation/TryCodes.py +19 -17
- nuitka/code_generation/TupleCodes.py +20 -18
- nuitka/code_generation/TypeAliasCodes.py +71 -0
- nuitka/code_generation/VariableCodes.py +26 -22
- nuitka/code_generation/VariableDeclarations.py +20 -17
- nuitka/code_generation/YieldCodes.py +22 -20
- nuitka/code_generation/__init__.py +5 -4
- nuitka/code_generation/c_types/CTypeBases.py +19 -17
- nuitka/code_generation/c_types/CTypeBooleans.py +19 -17
- nuitka/code_generation/c_types/CTypeCFloats.py +19 -17
- nuitka/code_generation/c_types/CTypeCLongs.py +19 -18
- nuitka/code_generation/c_types/CTypeModuleDictVariables.py +19 -17
- nuitka/code_generation/c_types/CTypeNuitkaBooleans.py +19 -17
- nuitka/code_generation/c_types/CTypeNuitkaInts.py +19 -18
- nuitka/code_generation/c_types/CTypeNuitkaVoids.py +19 -17
- nuitka/code_generation/c_types/CTypePyObjectPointers.py +27 -25
- nuitka/code_generation/c_types/CTypeVoids.py +20 -17
- nuitka/code_generation/c_types/__init__.py +5 -4
- nuitka/code_generation/templates/CodeTemplatesAsyncgens.py +18 -17
- nuitka/code_generation/templates/CodeTemplatesConstants.py +132 -36
- nuitka/code_generation/templates/CodeTemplatesCoroutines.py +18 -17
- nuitka/code_generation/templates/CodeTemplatesExceptions.py +19 -18
- nuitka/code_generation/templates/CodeTemplatesFrames.py +18 -17
- nuitka/code_generation/templates/CodeTemplatesFunction.py +18 -17
- nuitka/code_generation/templates/CodeTemplatesGeneratorFunction.py +19 -17
- nuitka/code_generation/templates/CodeTemplatesIterators.py +18 -18
- nuitka/code_generation/templates/CodeTemplatesLoader.py +25 -19
- nuitka/code_generation/templates/CodeTemplatesModules.py +244 -165
- nuitka/code_generation/templates/CodeTemplatesVariables.py +42 -27
- nuitka/code_generation/templates/TemplateDebugWrapper.py +19 -18
- nuitka/code_generation/templates/__init__.py +5 -4
- nuitka/code_generation/templates_c/CodeTemplateCallsMethodPositional.c.j2 +19 -19
- nuitka/code_generation/templates_c/CodeTemplateCallsMixed.c.j2 +18 -18
- nuitka/code_generation/templates_c/CodeTemplateCallsPositional.c.j2 +76 -25
- nuitka/code_generation/templates_c/CodeTemplateCallsPositionalMethodDescr.c.j2 +22 -22
- nuitka/code_generation/templates_c/CodeTemplateMakeListHinted.c.j2 +19 -19
- nuitka/code_generation/templates_c/CodeTemplateMakeListSmall.c.j2 +19 -19
- nuitka/code_generation/templates_c/HelperBuiltinMethodOperation.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperDictionaryCopy.c.j2 +121 -48
- nuitka/code_generation/templates_c/HelperImportHard.c.j2 +18 -18
- nuitka/code_generation/templates_c/HelperLongTools.c.j2 +18 -18
- nuitka/code_generation/templates_c/HelperObjectTools.c.j2 +6 -6
- nuitka/code_generation/templates_c/HelperOperationBinary.c.j2 +23 -23
- nuitka/code_generation/templates_c/HelperOperationComparison.c.j2 +35 -35
- nuitka/code_generation/templates_c/HelperOperationComparisonBytes.c.j2 +28 -28
- nuitka/code_generation/templates_c/HelperOperationComparisonFloat.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperOperationComparisonInt.c.j2 +18 -18
- nuitka/code_generation/templates_c/HelperOperationComparisonList.c.j2 +44 -32
- nuitka/code_generation/templates_c/HelperOperationComparisonLong.c.j2 +20 -20
- nuitka/code_generation/templates_c/HelperOperationComparisonStr.c.j2 +28 -28
- nuitka/code_generation/templates_c/HelperOperationComparisonTuple.c.j2 +24 -24
- nuitka/code_generation/templates_c/HelperOperationComparisonUnicode.c.j2 +33 -29
- nuitka/code_generation/templates_c/HelperOperationInplace.c.j2 +20 -20
- nuitka/code_generation/templates_c/HelperSlotsBinary.c.j2 +27 -27
- nuitka/code_generation/templates_c/HelperSlotsBytes.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsCommon.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsFloat.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsInt.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsList.c.j2 +21 -18
- nuitka/code_generation/templates_c/HelperSlotsLong.c.j2 +26 -24
- nuitka/code_generation/templates_c/HelperSlotsSet.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsStr.c.j2 +17 -17
- nuitka/code_generation/templates_c/HelperSlotsTuple.c.j2 +21 -18
- nuitka/code_generation/templates_c/HelperSlotsUnicode.c.j2 +17 -17
- nuitka/containers/Namedtuples.py +19 -18
- nuitka/containers/OrderedSetsFallback.py +19 -17
- nuitka/containers/__init__.py +5 -4
- nuitka/distutils/Build.py +19 -18
- nuitka/distutils/DistutilCommands.py +34 -23
- nuitka/distutils/__init__.py +5 -4
- nuitka/finalizations/Finalization.py +20 -17
- nuitka/finalizations/FinalizeMarkups.py +21 -41
- nuitka/finalizations/__init__.py +5 -4
- nuitka/freezer/DependsExe.py +48 -28
- nuitka/freezer/DllDependenciesCommon.py +47 -20
- nuitka/freezer/DllDependenciesMacOS.py +147 -57
- nuitka/freezer/DllDependenciesPosix.py +29 -19
- nuitka/freezer/DllDependenciesWin32.py +29 -21
- nuitka/freezer/ImportDetection.py +20 -17
- nuitka/freezer/IncludedDataFiles.py +118 -47
- nuitka/freezer/IncludedEntryPoints.py +102 -38
- nuitka/freezer/Onefile.py +32 -22
- nuitka/freezer/Standalone.py +105 -50
- nuitka/freezer/__init__.py +5 -4
- nuitka/importing/IgnoreListing.py +19 -17
- nuitka/importing/ImportCache.py +24 -21
- nuitka/importing/ImportResolving.py +103 -95
- nuitka/importing/Importing.py +286 -92
- nuitka/importing/PreloadedPackages.py +21 -18
- nuitka/importing/Recursion.py +131 -47
- nuitka/importing/StandardLibrary.py +46 -28
- nuitka/importing/__init__.py +5 -4
- nuitka/nodes/AsyncgenNodes.py +19 -17
- nuitka/nodes/AttributeLookupNodes.py +19 -17
- nuitka/nodes/AttributeNodes.py +19 -17
- nuitka/nodes/AttributeNodesGenerated.py +49 -24
- nuitka/nodes/BuiltinAllNodes.py +19 -17
- nuitka/nodes/BuiltinAnyNodes.py +19 -17
- nuitka/nodes/BuiltinComplexNodes.py +20 -17
- nuitka/nodes/BuiltinDecodingNodes.py +19 -17
- nuitka/nodes/BuiltinDecoratorNodes.py +19 -17
- nuitka/nodes/BuiltinDictNodes.py +19 -17
- nuitka/nodes/BuiltinFormatNodes.py +20 -17
- nuitka/nodes/BuiltinHashNodes.py +19 -17
- nuitka/nodes/BuiltinInputNodes.py +19 -17
- nuitka/nodes/BuiltinIntegerNodes.py +19 -17
- nuitka/nodes/BuiltinIteratorNodes.py +24 -20
- nuitka/nodes/BuiltinLenNodes.py +19 -17
- nuitka/nodes/BuiltinNextNodes.py +19 -17
- nuitka/nodes/BuiltinOpenNodes.py +52 -18
- nuitka/nodes/BuiltinOperationNodeBasesGenerated.py +40 -23
- nuitka/nodes/BuiltinRangeNodes.py +21 -19
- nuitka/nodes/BuiltinRefNodes.py +68 -19
- nuitka/nodes/BuiltinSumNodes.py +20 -18
- nuitka/nodes/BuiltinTypeNodes.py +19 -17
- nuitka/nodes/BuiltinVarsNodes.py +19 -18
- nuitka/nodes/BytesNodes.py +19 -17
- nuitka/nodes/CallNodes.py +19 -17
- nuitka/nodes/Checkers.py +19 -17
- nuitka/nodes/ChildrenHavingMixins.py +1250 -302
- nuitka/nodes/ClassNodes.py +49 -29
- nuitka/nodes/CodeObjectSpecs.py +29 -18
- nuitka/nodes/ComparisonNodes.py +19 -17
- nuitka/nodes/ConditionalNodes.py +21 -23
- nuitka/nodes/ConstantRefNodes.py +57 -17
- nuitka/nodes/ContainerMakingNodes.py +19 -17
- nuitka/nodes/ContainerOperationNodes.py +19 -17
- nuitka/nodes/CoroutineNodes.py +19 -17
- nuitka/nodes/CtypesNodes.py +19 -18
- nuitka/nodes/DictionaryNodes.py +19 -18
- nuitka/nodes/ExceptionNodes.py +29 -17
- nuitka/nodes/ExecEvalNodes.py +19 -17
- nuitka/nodes/ExpressionBases.py +34 -26
- nuitka/nodes/ExpressionBasesGenerated.py +54 -32
- nuitka/nodes/ExpressionShapeMixins.py +19 -17
- nuitka/nodes/FrameNodes.py +19 -17
- nuitka/nodes/FunctionAttributeNodes.py +19 -17
- nuitka/nodes/FunctionNodes.py +81 -35
- nuitka/nodes/FutureSpecs.py +35 -20
- nuitka/nodes/GeneratorNodes.py +21 -19
- nuitka/nodes/GlobalsLocalsNodes.py +22 -17
- nuitka/nodes/HardImportNodesGenerated.py +545 -129
- nuitka/nodes/ImportHardNodes.py +46 -38
- nuitka/nodes/ImportNodes.py +436 -446
- nuitka/nodes/IndicatorMixins.py +19 -17
- nuitka/nodes/InjectCNodes.py +19 -18
- nuitka/nodes/IterationHandles.py +55 -34
- nuitka/nodes/KeyValuePairNodes.py +19 -17
- nuitka/nodes/ListOperationNodes.py +33 -21
- nuitka/nodes/LocalsDictNodes.py +19 -17
- nuitka/nodes/LocalsScopes.py +41 -41
- nuitka/nodes/LoopNodes.py +28 -17
- nuitka/nodes/MatchNodes.py +37 -24
- nuitka/nodes/ModuleAttributeNodes.py +18 -35
- nuitka/nodes/ModuleNodes.py +90 -31
- nuitka/nodes/NetworkxNodes.py +45 -0
- nuitka/nodes/NodeBases.py +45 -43
- nuitka/nodes/NodeMakingHelpers.py +21 -19
- nuitka/nodes/NodeMetaClasses.py +45 -28
- nuitka/nodes/OperatorNodes.py +28 -26
- nuitka/nodes/OperatorNodesUnary.py +20 -17
- nuitka/nodes/OsSysNodes.py +66 -18
- nuitka/nodes/OutlineNodes.py +22 -20
- nuitka/nodes/PackageMetadataNodes.py +37 -27
- nuitka/nodes/PackageResourceNodes.py +29 -23
- nuitka/nodes/PrintNodes.py +19 -17
- nuitka/nodes/ReturnNodes.py +20 -18
- nuitka/nodes/SideEffectNodes.py +19 -17
- nuitka/nodes/SliceNodes.py +20 -18
- nuitka/nodes/StatementBasesGenerated.py +125 -77
- nuitka/nodes/StatementNodes.py +19 -17
- nuitka/nodes/StrNodes.py +19 -17
- nuitka/nodes/StringConcatenationNodes.py +20 -17
- nuitka/nodes/SubscriptNodes.py +26 -24
- nuitka/nodes/TensorflowNodes.py +38 -0
- nuitka/nodes/TryNodes.py +19 -17
- nuitka/nodes/TypeMatchNodes.py +19 -17
- nuitka/nodes/TypeNodes.py +40 -17
- nuitka/nodes/VariableAssignNodes.py +122 -64
- nuitka/nodes/VariableDelNodes.py +19 -17
- nuitka/nodes/VariableNameNodes.py +19 -17
- nuitka/nodes/VariableRefNodes.py +63 -26
- nuitka/nodes/VariableReleaseNodes.py +19 -17
- nuitka/nodes/YieldNodes.py +21 -19
- nuitka/nodes/__init__.py +5 -4
- nuitka/nodes/shapes/BuiltinTypeShapes.py +145 -39
- nuitka/nodes/shapes/ControlFlowDescriptions.py +19 -17
- nuitka/nodes/shapes/ShapeMixins.py +40 -17
- nuitka/nodes/shapes/StandardShapes.py +27 -20
- nuitka/nodes/shapes/__init__.py +5 -4
- nuitka/optimizations/BytecodeDemotion.py +19 -17
- nuitka/optimizations/FunctionInlining.py +22 -23
- nuitka/optimizations/Graphs.py +19 -17
- nuitka/optimizations/Optimization.py +39 -35
- nuitka/optimizations/OptimizeBuiltinCalls.py +31 -27
- nuitka/optimizations/Tags.py +19 -18
- nuitka/optimizations/TraceCollections.py +67 -24
- nuitka/optimizations/ValueTraces.py +92 -25
- nuitka/optimizations/__init__.py +5 -4
- nuitka/pgo/PGO.py +33 -23
- nuitka/pgo/__init__.py +5 -4
- nuitka/plugins/PluginBase.py +610 -109
- nuitka/plugins/Plugins.py +241 -58
- nuitka/plugins/YamlPluginBase.py +121 -0
- nuitka/plugins/__init__.py +5 -4
- nuitka/plugins/standard/AntiBloatPlugin.py +357 -129
- nuitka/plugins/standard/ConsiderPyLintAnnotationsPlugin.py +20 -19
- nuitka/plugins/standard/DataFilesPlugin.py +65 -29
- nuitka/plugins/standard/DelvewheelPlugin.py +32 -24
- nuitka/plugins/standard/DillPlugin/DillPlugin.c +37 -0
- nuitka/plugins/standard/DillPlugin/dill-postLoad.py +256 -0
- nuitka/plugins/standard/DillPlugin.py +42 -134
- nuitka/plugins/standard/DllFilesPlugin.py +125 -42
- nuitka/plugins/standard/EnumPlugin.py +19 -17
- nuitka/plugins/standard/EventletPlugin.py +19 -17
- nuitka/plugins/standard/GeventPlugin.py +19 -17
- nuitka/plugins/standard/GiPlugin.py +44 -28
- nuitka/plugins/standard/GlfwPlugin.py +20 -17
- nuitka/plugins/standard/ImplicitImports.py +407 -46
- nuitka/plugins/standard/KivyPlugin.py +30 -17
- nuitka/plugins/standard/MatplotlibPlugin.py +88 -42
- nuitka/plugins/standard/MultiprocessingPlugin.py +25 -20
- nuitka/plugins/standard/NumpyPlugin.py +19 -17
- nuitka/plugins/standard/OptionsNannyPlugin.py +48 -76
- nuitka/plugins/standard/PbrPlugin.py +21 -19
- nuitka/plugins/standard/PkgResourcesPlugin.py +34 -23
- nuitka/plugins/standard/PmwPlugin.py +30 -27
- nuitka/plugins/standard/PySidePyQtPlugin.py +74 -80
- nuitka/plugins/standard/PywebViewPlugin.py +19 -17
- nuitka/plugins/standard/SpacyPlugin.py +136 -0
- nuitka/plugins/standard/TensorflowPlugin.py +20 -17
- nuitka/plugins/standard/TkinterPlugin.py +103 -53
- nuitka/plugins/standard/TorchPlugin.py +20 -17
- nuitka/plugins/standard/TransformersPlugin.py +94 -30
- nuitka/plugins/standard/TrioPlugin.py +18 -15
- nuitka/plugins/standard/UpxPlugin.py +21 -19
- nuitka/plugins/standard/__init__.py +5 -4
- nuitka/plugins/standard/standard.nuitka-package.config.yml +3449 -1299
- nuitka/plugins/standard/stdlib2.nuitka-package.config.yml +14 -14
- nuitka/plugins/standard/stdlib3.nuitka-package.config.yml +121 -66
- nuitka/reports/CompilationReportReader.py +67 -0
- nuitka/reports/LicenseReport.rst.j2 +21 -21
- nuitka/reports/Reports.py +352 -76
- nuitka/reports/__init__.py +5 -4
- nuitka/specs/BuiltinBytesOperationSpecs.py +18 -17
- nuitka/specs/BuiltinDictOperationSpecs.py +18 -17
- nuitka/specs/BuiltinListOperationSpecs.py +18 -17
- nuitka/specs/BuiltinParameterSpecs.py +30 -20
- nuitka/specs/BuiltinStrOperationSpecs.py +19 -18
- nuitka/specs/BuiltinTypeOperationSpecs.py +18 -18
- nuitka/specs/BuiltinUnicodeOperationSpecs.py +18 -17
- nuitka/specs/HardImportSpecs.py +67 -22
- nuitka/specs/ParameterSpecs.py +56 -41
- nuitka/specs/__init__.py +5 -4
- nuitka/tools/Basics.py +20 -18
- nuitka/tools/__init__.py +5 -4
- nuitka/tools/commercial/__init__.py +7 -6
- nuitka/tools/data_composer/DataComposer.py +78 -62
- nuitka/tools/data_composer/__init__.py +5 -4
- nuitka/tools/data_composer/__main__.py +18 -17
- nuitka/tools/environments/CreateEnvironment.py +20 -17
- nuitka/tools/environments/Virtualenv.py +60 -32
- nuitka/tools/environments/__init__.py +5 -4
- nuitka/tools/general/__init__.py +5 -4
- nuitka/tools/general/dll_report/__init__.py +5 -4
- nuitka/tools/general/dll_report/__main__.py +19 -21
- nuitka/tools/general/find_module/FindModuleCode.py +35 -22
- nuitka/tools/general/find_module/__init__.py +5 -4
- nuitka/tools/onefile_compressor/OnefileCompressor.py +213 -131
- nuitka/tools/onefile_compressor/__init__.py +5 -4
- nuitka/tools/onefile_compressor/__main__.py +18 -17
- nuitka/tools/podman/Podman.py +19 -17
- nuitka/tools/podman/__init__.py +5 -4
- nuitka/tools/podman/__main__.py +35 -19
- nuitka/tools/profiler/__init__.py +5 -4
- nuitka/tools/profiler/__main__.py +18 -17
- nuitka/tools/scanning/DisplayPackageDLLs.py +47 -22
- nuitka/tools/scanning/DisplayPackageData.py +31 -19
- nuitka/tools/scanning/__init__.py +5 -4
- nuitka/tools/specialize/CTypeDescriptions.py +93 -71
- nuitka/tools/specialize/Common.py +18 -17
- nuitka/tools/specialize/SpecializeC.py +31 -27
- nuitka/tools/specialize/SpecializePython.py +108 -45
- nuitka/tools/specialize/__init__.py +5 -4
- nuitka/tools/testing/Common.py +106 -52
- nuitka/tools/testing/Constructs.py +19 -17
- nuitka/tools/testing/OutputComparison.py +54 -18
- nuitka/tools/testing/Pythons.py +19 -18
- nuitka/tools/testing/RuntimeTracing.py +20 -19
- nuitka/tools/testing/SearchModes.py +26 -20
- nuitka/tools/testing/Valgrind.py +19 -17
- nuitka/tools/testing/__init__.py +5 -4
- nuitka/tools/testing/check_reference_counts/__init__.py +5 -4
- nuitka/tools/testing/check_reference_counts/__main__.py +18 -18
- nuitka/tools/testing/compare_with_cpython/__init__.py +5 -4
- nuitka/tools/testing/compare_with_cpython/__main__.py +36 -29
- nuitka/tools/testing/find_sxs_modules/__init__.py +5 -4
- nuitka/tools/testing/find_sxs_modules/__main__.py +17 -17
- nuitka/tools/testing/measure_construct_performance/__init__.py +5 -4
- nuitka/tools/testing/measure_construct_performance/__main__.py +22 -25
- nuitka/tools/testing/run_nuitka_tests/__init__.py +5 -4
- nuitka/tools/testing/run_nuitka_tests/__main__.py +57 -40
- nuitka/tools/watch/AutoStage.py +144 -0
- nuitka/tools/watch/GitHub.py +113 -0
- nuitka/tools/watch/__init__.py +5 -4
- nuitka/tools/watch/__main__.py +322 -91
- nuitka/tree/Building.py +176 -147
- nuitka/tree/ComplexCallHelperFunctions.py +80 -58
- nuitka/tree/Extractions.py +19 -17
- nuitka/tree/InternalModule.py +29 -20
- nuitka/tree/Operations.py +19 -17
- nuitka/tree/ReformulationAssertStatements.py +20 -17
- nuitka/tree/ReformulationAssignmentStatements.py +92 -91
- nuitka/tree/ReformulationBooleanExpressions.py +19 -17
- nuitka/tree/ReformulationCallExpressions.py +20 -18
- nuitka/tree/ReformulationClasses.py +45 -39
- nuitka/tree/ReformulationClasses3.py +146 -98
- nuitka/tree/ReformulationComparisonExpressions.py +29 -35
- nuitka/tree/ReformulationContractionExpressions.py +58 -55
- nuitka/tree/ReformulationDictionaryCreation.py +40 -35
- nuitka/tree/ReformulationExecStatements.py +42 -39
- nuitka/tree/ReformulationForLoopStatements.py +30 -34
- nuitka/tree/ReformulationFunctionStatements.py +58 -54
- nuitka/tree/ReformulationImportStatements.py +34 -29
- nuitka/tree/ReformulationLambdaExpressions.py +23 -24
- nuitka/tree/ReformulationMatchStatements.py +244 -92
- nuitka/tree/ReformulationMultidist.py +22 -18
- nuitka/tree/ReformulationNamespacePackages.py +55 -46
- nuitka/tree/ReformulationPrintStatements.py +23 -24
- nuitka/tree/ReformulationSequenceCreation.py +50 -49
- nuitka/tree/ReformulationSubscriptExpressions.py +19 -17
- nuitka/tree/ReformulationTryExceptStatements.py +19 -17
- nuitka/tree/ReformulationTryFinallyStatements.py +34 -17
- nuitka/tree/ReformulationWhileLoopStatements.py +19 -17
- nuitka/tree/ReformulationWithStatements.py +39 -41
- nuitka/tree/ReformulationYieldExpressions.py +21 -19
- nuitka/tree/SourceHandling.py +76 -31
- nuitka/tree/SyntaxErrors.py +19 -17
- nuitka/tree/TreeHelpers.py +33 -20
- nuitka/tree/VariableClosure.py +35 -39
- nuitka/tree/__init__.py +5 -4
- nuitka/utils/AppDirs.py +41 -20
- nuitka/utils/CStrings.py +66 -21
- nuitka/utils/CommandLineOptions.py +84 -19
- nuitka/utils/Distributions.py +445 -54
- nuitka/utils/Download.py +89 -57
- nuitka/utils/Execution.py +73 -34
- nuitka/utils/FileOperations.py +318 -74
- nuitka/utils/Hashing.py +55 -33
- nuitka/utils/Images.py +26 -19
- nuitka/utils/Importing.py +118 -24
- nuitka/utils/InstalledPythons.py +80 -75
- nuitka/utils/InstanceCounters.py +20 -17
- nuitka/utils/Jinja2.py +30 -22
- nuitka/utils/Json.py +19 -17
- nuitka/utils/MacOSApp.py +26 -18
- nuitka/utils/MemoryUsage.py +20 -18
- nuitka/utils/ModuleNames.py +42 -26
- nuitka/utils/ReExecute.py +50 -28
- nuitka/utils/Rest.py +20 -17
- nuitka/utils/SharedLibraries.py +161 -75
- nuitka/utils/Shebang.py +20 -17
- nuitka/utils/Signing.py +63 -18
- nuitka/utils/SlotMetaClasses.py +57 -0
- nuitka/utils/StaticLibraries.py +83 -56
- nuitka/utils/ThreadedExecutor.py +18 -17
- nuitka/utils/Timing.py +22 -20
- nuitka/utils/Utils.py +115 -25
- nuitka/utils/WindowsFileUsage.py +22 -20
- nuitka/utils/WindowsResources.py +25 -18
- nuitka/utils/Yaml.py +62 -24
- nuitka/utils/__init__.py +5 -4
- Nuitka_winsvc-1.8.dist-info/RECORD +0 -905
- nuitka/build/inline_copy/tqdm/tqdm/_tqdm_gui.py +0 -9
- nuitka/build/inline_copy/tqdm/tqdm/gui.py +0 -191
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/LICENSE.txt +0 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/entry_points.txt +0 -0
- {Nuitka_winsvc-1.8.dist-info → Nuitka_winsvc-2.4.8.dist-info}/top_level.txt +0 -0
|
@@ -1,20 +1,6 @@
|
|
|
1
|
-
# Copyright
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
# integrates with CPython, but also works on its own.
|
|
5
|
-
#
|
|
6
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
-
# you may not use this file except in compliance with the License.
|
|
8
|
-
# You may obtain a copy of the License at
|
|
9
|
-
#
|
|
10
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
-
#
|
|
12
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
-
# See the License for the specific language governing permissions and
|
|
16
|
-
# limitations under the License.
|
|
17
|
-
#
|
|
1
|
+
# Copyright 2024, Kay Hayen, mailto:kay.hayen@gmail.com find license text at end of file
|
|
2
|
+
|
|
3
|
+
|
|
18
4
|
""" Main module code templates
|
|
19
5
|
|
|
20
6
|
This for the main program in case of executables, the module templates and
|
|
@@ -23,7 +9,7 @@ stuff related to importing, and of course the generated code license.
|
|
|
23
9
|
"""
|
|
24
10
|
|
|
25
11
|
template_global_copyright = """\
|
|
26
|
-
/* Generated code for Python module '%(
|
|
12
|
+
/* Generated code for Python module '%(module_identifier)s'
|
|
27
13
|
* created by Nuitka version %(version)s
|
|
28
14
|
*
|
|
29
15
|
* This code is in part copyright %(year)s Kay Hayen.
|
|
@@ -73,7 +59,7 @@ static bool constants_created = false;
|
|
|
73
59
|
/* Function to create module private constants. */
|
|
74
60
|
static void createModuleConstants(PyThreadState *tstate) {
|
|
75
61
|
if (constants_created == false) {
|
|
76
|
-
loadConstantsBlob(tstate, &mod_consts[0],
|
|
62
|
+
loadConstantsBlob(tstate, &mod_consts[0], UN_TRANSLATE(%(module_const_blob_name)s));
|
|
77
63
|
constants_created = true;
|
|
78
64
|
|
|
79
65
|
#ifndef __NUITKA_NO_ASSERT__
|
|
@@ -130,66 +116,85 @@ extern PyTypeObject Nuitka_Loader_Type;
|
|
|
130
116
|
// in another process, useful for multiprocessing extensions like dill
|
|
131
117
|
extern void registerDillPluginTables(PyThreadState *tstate, char const *module_name, PyMethodDef *reduce_compiled_function, PyMethodDef *create_compiled_function);
|
|
132
118
|
|
|
133
|
-
function_impl_code
|
|
119
|
+
static function_impl_code const function_table_%(module_identifier)s[] = {
|
|
134
120
|
%(module_function_table_entries)s
|
|
135
121
|
NULL
|
|
136
122
|
};
|
|
137
123
|
|
|
138
|
-
static char const *_reduce_compiled_function_argnames[] = {
|
|
139
|
-
"func",
|
|
140
|
-
NULL
|
|
141
|
-
};
|
|
142
|
-
|
|
143
124
|
static PyObject *_reduce_compiled_function(PyObject *self, PyObject *args, PyObject *kwds) {
|
|
144
125
|
PyObject *func;
|
|
145
126
|
|
|
146
|
-
if (!
|
|
127
|
+
if (!PyArg_ParseTuple(args, "O:reduce_compiled_function", &func, NULL)) {
|
|
147
128
|
return NULL;
|
|
148
129
|
}
|
|
149
130
|
|
|
150
|
-
|
|
151
|
-
PyThreadState *tstate = PyThreadState_GET();
|
|
131
|
+
PyThreadState *tstate = PyThreadState_GET();
|
|
152
132
|
|
|
153
|
-
|
|
133
|
+
if (Nuitka_Function_Check(func) == false) {
|
|
134
|
+
SET_CURRENT_EXCEPTION_TYPE0_STR(tstate, PyExc_TypeError, "not a compiled function");
|
|
154
135
|
return NULL;
|
|
155
136
|
}
|
|
156
137
|
|
|
157
138
|
struct Nuitka_FunctionObject *function = (struct Nuitka_FunctionObject *)func;
|
|
158
139
|
|
|
159
|
-
|
|
160
|
-
int offset = 0;
|
|
161
|
-
|
|
162
|
-
while (*current != NULL) {
|
|
163
|
-
if (*current == function->m_c_code) {
|
|
164
|
-
break;
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
current += 1;
|
|
168
|
-
offset += 1;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
if (*current == NULL) {
|
|
172
|
-
PyThreadState *tstate = PyThreadState_GET();
|
|
140
|
+
int offset = Nuitka_Function_GetFunctionCodeIndex(function, function_table_%(module_identifier)s);
|
|
173
141
|
|
|
142
|
+
if (unlikely(offset == -1)) {
|
|
143
|
+
#if 0
|
|
144
|
+
PRINT_STRING("Looking for:");
|
|
145
|
+
PRINT_ITEM(func);
|
|
146
|
+
PRINT_NEW_LINE();
|
|
147
|
+
#endif
|
|
174
148
|
SET_CURRENT_EXCEPTION_TYPE0_STR(tstate, PyExc_TypeError, "Cannot find compiled function in module.");
|
|
175
149
|
return NULL;
|
|
176
150
|
}
|
|
177
151
|
|
|
178
|
-
PyObject *code_object_desc =
|
|
179
|
-
PyTuple_SET_ITEM0(code_object_desc, 0, function->m_code_object->co_filename);
|
|
180
|
-
PyTuple_SET_ITEM0(code_object_desc, 1, function->m_code_object->co_name);
|
|
181
|
-
PyTuple_SET_ITEM(code_object_desc, 2, PyLong_FromLong(function->m_code_object->co_firstlineno));
|
|
182
|
-
PyTuple_SET_ITEM0(code_object_desc, 3, function->m_code_object->co_varnames);
|
|
183
|
-
PyTuple_SET_ITEM(code_object_desc, 4, PyLong_FromLong(function->m_code_object->co_argcount));
|
|
184
|
-
PyTuple_SET_ITEM(code_object_desc, 5, PyLong_FromLong(function->m_code_object->co_flags));
|
|
152
|
+
PyObject *code_object_desc = Nuitka_Function_ExtractCodeObjectDescription(tstate, function);
|
|
185
153
|
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
PyObject *result = MAKE_TUPLE_EMPTY(4);
|
|
154
|
+
PyObject *result = MAKE_TUPLE_EMPTY(tstate, 8);
|
|
189
155
|
PyTuple_SET_ITEM(result, 0, PyLong_FromLong(offset));
|
|
190
156
|
PyTuple_SET_ITEM(result, 1, code_object_desc);
|
|
191
157
|
PyTuple_SET_ITEM0(result, 2, function->m_defaults);
|
|
192
|
-
|
|
158
|
+
#if PYTHON_VERSION >= 0x300
|
|
159
|
+
PyTuple_SET_ITEM0(result, 3, function->m_kwdefaults ? function->m_kwdefaults : Py_None);
|
|
160
|
+
#else
|
|
161
|
+
PyTuple_SET_ITEM_IMMORTAL(result, 3, Py_None);
|
|
162
|
+
#endif
|
|
163
|
+
PyTuple_SET_ITEM0(result, 4, function->m_doc != NULL ? function->m_doc : Py_None);
|
|
164
|
+
|
|
165
|
+
if (offset == -5) {
|
|
166
|
+
CHECK_OBJECT(function->m_constant_return_value);
|
|
167
|
+
PyTuple_SET_ITEM_IMMORTAL(result, 5, function->m_constant_return_value);
|
|
168
|
+
} else {
|
|
169
|
+
PyTuple_SET_ITEM_IMMORTAL(result, 5, Py_None);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
#if PYTHON_VERSION >= 0x300
|
|
173
|
+
PyTuple_SET_ITEM0(result, 6, function->m_qualname);
|
|
174
|
+
#else
|
|
175
|
+
PyTuple_SET_ITEM_IMMORTAL(result, 6, Py_None);
|
|
176
|
+
#endif
|
|
177
|
+
|
|
178
|
+
PyObject *closure = PyObject_GetAttr(
|
|
179
|
+
(PyObject *)function,
|
|
180
|
+
const_str_plain___closure__
|
|
181
|
+
);
|
|
182
|
+
|
|
183
|
+
if (closure != Py_None) {
|
|
184
|
+
for (Py_ssize_t i=0; i < PyTuple_GET_SIZE(closure); i++) {
|
|
185
|
+
struct Nuitka_CellObject *cell = (struct Nuitka_CellObject *)PyTuple_GET_ITEM(closure, i);
|
|
186
|
+
|
|
187
|
+
assert(Nuitka_Cell_Check((PyObject *)cell));
|
|
188
|
+
|
|
189
|
+
PyTuple_SET_ITEM0(
|
|
190
|
+
closure,
|
|
191
|
+
i,
|
|
192
|
+
cell->ob_ref
|
|
193
|
+
);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
PyTuple_SET_ITEM(result, 7, closure);
|
|
193
198
|
|
|
194
199
|
CHECK_OBJECT_DEEP(result);
|
|
195
200
|
|
|
@@ -197,105 +202,70 @@ static PyObject *_reduce_compiled_function(PyObject *self, PyObject *args, PyObj
|
|
|
197
202
|
}
|
|
198
203
|
|
|
199
204
|
static PyMethodDef _method_def_reduce_compiled_function = {"reduce_compiled_function", (PyCFunction)_reduce_compiled_function,
|
|
200
|
-
METH_VARARGS
|
|
201
|
-
|
|
202
|
-
static char const *_create_compiled_function_argnames[] = {
|
|
203
|
-
"func",
|
|
204
|
-
"code_object_desc",
|
|
205
|
-
"defaults",
|
|
206
|
-
"doc",
|
|
207
|
-
NULL
|
|
208
|
-
};
|
|
205
|
+
METH_VARARGS, NULL};
|
|
209
206
|
|
|
210
207
|
|
|
211
208
|
static PyObject *_create_compiled_function(PyObject *self, PyObject *args, PyObject *kwds) {
|
|
212
209
|
CHECK_OBJECT_DEEP(args);
|
|
213
210
|
|
|
214
|
-
PyObject *
|
|
211
|
+
PyObject *function_index;
|
|
215
212
|
PyObject *code_object_desc;
|
|
216
213
|
PyObject *defaults;
|
|
214
|
+
PyObject *kw_defaults;
|
|
217
215
|
PyObject *doc;
|
|
216
|
+
PyObject *constant_return_value;
|
|
217
|
+
PyObject *function_qualname;
|
|
218
|
+
PyObject *closure;
|
|
218
219
|
|
|
219
|
-
if (!
|
|
220
|
-
return NULL;
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
int offset = PyLong_AsLong(func);
|
|
224
|
-
|
|
225
|
-
if (offset == -1 && HAS_ERROR_OCCURRED(tstate)) {
|
|
226
|
-
return NULL;
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
if (offset > sizeof(functable_%(module_identifier)s) || offset < 0) {
|
|
230
|
-
SET_CURRENT_EXCEPTION_TYPE0_STR_STATE(tstate, PyExc_TypeError, "Wrong offset for compiled function.");
|
|
220
|
+
if (!PyArg_ParseTuple(args, "OOOOOOOO:create_compiled_function", &function_index, &code_object_desc, &defaults, &kw_defaults, &doc, &constant_return_value, &function_qualname, &closure, NULL)) {
|
|
231
221
|
return NULL;
|
|
232
222
|
}
|
|
233
223
|
|
|
234
|
-
PyObject *filename = PyTuple_GET_ITEM(code_object_desc, 0);
|
|
235
|
-
PyObject *function_name = PyTuple_GET_ITEM(code_object_desc, 1);
|
|
236
|
-
PyObject *line = PyTuple_GET_ITEM(code_object_desc, 2);
|
|
237
|
-
int line_int = PyLong_AsLong(line);
|
|
238
|
-
assert(!HAS_ERROR_OCCURRED(tstate));
|
|
239
|
-
|
|
240
|
-
PyObject *argnames = PyTuple_GET_ITEM(code_object_desc, 3);
|
|
241
|
-
PyObject *arg_count = PyTuple_GET_ITEM(code_object_desc, 4);
|
|
242
|
-
int arg_count_int = PyLong_AsLong(arg_count);
|
|
243
|
-
assert(!HAS_ERROR_OCCURRED(tstate));
|
|
244
|
-
PyObject *flags = PyTuple_GET_ITEM(code_object_desc, 5);
|
|
245
|
-
int flags_int = PyLong_AsLong(flags);
|
|
246
|
-
assert(!HAS_ERROR_OCCURRED(tstate));
|
|
247
|
-
|
|
248
|
-
PyCodeObject *code_object = MAKE_CODE_OBJECT(
|
|
249
|
-
filename,
|
|
250
|
-
line_int,
|
|
251
|
-
flags_int,
|
|
252
|
-
function_name,
|
|
253
|
-
function_name, // TODO: function_qualname
|
|
254
|
-
argnames,
|
|
255
|
-
NULL, // freevars
|
|
256
|
-
arg_count_int,
|
|
257
|
-
0, // TODO: Missing kw_only_count
|
|
258
|
-
0 // TODO: Missing pos_only_count
|
|
259
|
-
);
|
|
260
|
-
|
|
261
|
-
struct Nuitka_FunctionObject *result = Nuitka_Function_New(
|
|
262
|
-
functable_%(module_identifier)s[offset],
|
|
263
|
-
code_object->co_name,
|
|
264
|
-
#if PYTHON_VERSION >= 0x300
|
|
265
|
-
NULL, // TODO: Not transferring qualname yet
|
|
266
|
-
#endif
|
|
267
|
-
code_object,
|
|
268
|
-
defaults,
|
|
269
224
|
#if PYTHON_VERSION >= 0x300
|
|
270
|
-
|
|
271
|
-
|
|
225
|
+
if (kw_defaults == Py_None) {
|
|
226
|
+
kw_defaults = NULL;
|
|
227
|
+
}
|
|
272
228
|
#endif
|
|
229
|
+
|
|
230
|
+
return (PyObject *)Nuitka_Function_CreateFunctionViaCodeIndex(
|
|
273
231
|
module_%(module_identifier)s,
|
|
232
|
+
function_qualname,
|
|
233
|
+
function_index,
|
|
234
|
+
code_object_desc,
|
|
235
|
+
constant_return_value,
|
|
236
|
+
defaults,
|
|
237
|
+
kw_defaults,
|
|
274
238
|
doc,
|
|
275
|
-
|
|
276
|
-
|
|
239
|
+
closure,
|
|
240
|
+
function_table_%(module_identifier)s,
|
|
241
|
+
sizeof(function_table_%(module_identifier)s) / sizeof(function_impl_code)
|
|
277
242
|
);
|
|
278
|
-
|
|
279
|
-
return (PyObject *)result;
|
|
280
243
|
}
|
|
281
244
|
|
|
282
245
|
static PyMethodDef _method_def_create_compiled_function = {
|
|
283
246
|
"create_compiled_function",
|
|
284
247
|
(PyCFunction)_create_compiled_function,
|
|
285
|
-
METH_VARARGS
|
|
248
|
+
METH_VARARGS, NULL
|
|
286
249
|
};
|
|
287
250
|
|
|
288
251
|
|
|
289
252
|
#endif
|
|
290
253
|
|
|
254
|
+
// Actual name might be different when loaded as a package.
|
|
255
|
+
#if defined(_NUITKA_MODULE) && %(is_top)d
|
|
256
|
+
static char const *module_full_name = %(module_name_cstr)s;
|
|
257
|
+
#endif
|
|
258
|
+
|
|
291
259
|
// Internal entry point for module code.
|
|
292
260
|
PyObject *modulecode_%(module_identifier)s(PyThreadState *tstate, PyObject *module, struct Nuitka_MetaPathBasedLoaderEntry const *loader_entry) {
|
|
293
261
|
// Report entry to PGO.
|
|
294
|
-
PGO_onModuleEntered("%(
|
|
262
|
+
PGO_onModuleEntered("%(module_identifier)s");
|
|
295
263
|
|
|
296
264
|
// Store the module for future use.
|
|
297
265
|
module_%(module_identifier)s = module;
|
|
298
266
|
|
|
267
|
+
moduledict_%(module_identifier)s = MODULE_DICT(module_%(module_identifier)s);
|
|
268
|
+
|
|
299
269
|
// Modules can be loaded again in case of errors, avoid the init being done again.
|
|
300
270
|
static bool init_done = false;
|
|
301
271
|
|
|
@@ -304,11 +274,23 @@ PyObject *modulecode_%(module_identifier)s(PyThreadState *tstate, PyObject *modu
|
|
|
304
274
|
// In case of an extension module loaded into a process, we need to call
|
|
305
275
|
// initialization here because that's the first and potentially only time
|
|
306
276
|
// we are going called.
|
|
307
|
-
|
|
277
|
+
#if PYTHON_VERSION > 0x350 && !defined(_NUITKA_EXPERIMENTAL_DISABLE_ALLOCATORS)
|
|
278
|
+
initNuitkaAllocators();
|
|
279
|
+
#endif
|
|
308
280
|
// Initialize the constant values used.
|
|
309
281
|
_initBuiltinModule();
|
|
310
|
-
createGlobalConstants(tstate);
|
|
311
282
|
|
|
283
|
+
#if PYTHON_VERSION >= 0x3c0
|
|
284
|
+
PyObject *real_module_name = PyObject_GetAttrString(module, "__name__");
|
|
285
|
+
CHECK_OBJECT(real_module_name);
|
|
286
|
+
module_full_name = strdup(Nuitka_String_AsString(real_module_name));
|
|
287
|
+
#endif
|
|
288
|
+
|
|
289
|
+
#if PYTHON_VERSION >= 0x3c0
|
|
290
|
+
createGlobalConstants(tstate, real_module_name);
|
|
291
|
+
#else
|
|
292
|
+
createGlobalConstants(tstate);
|
|
293
|
+
#endif
|
|
312
294
|
/* Initialize the compiled types of Nuitka. */
|
|
313
295
|
_initCompiledCellType();
|
|
314
296
|
_initCompiledGeneratorType();
|
|
@@ -325,9 +307,13 @@ PyObject *modulecode_%(module_identifier)s(PyThreadState *tstate, PyObject *modu
|
|
|
325
307
|
|
|
326
308
|
// Enable meta path based loader if not already done.
|
|
327
309
|
#ifdef _NUITKA_TRACE
|
|
328
|
-
PRINT_STRING("%(
|
|
310
|
+
PRINT_STRING("%(module_identifier)s: Calling setupMetaPathBasedLoader().\n");
|
|
329
311
|
#endif
|
|
330
312
|
setupMetaPathBasedLoader(tstate);
|
|
313
|
+
#if PYTHON_VERSION >= 0x3c0
|
|
314
|
+
updateMetaPathBasedLoaderModuleRoot(module_full_name);
|
|
315
|
+
#endif
|
|
316
|
+
|
|
331
317
|
|
|
332
318
|
#if PYTHON_VERSION >= 0x300
|
|
333
319
|
patchInspectModule(tstate);
|
|
@@ -336,7 +322,7 @@ PyObject *modulecode_%(module_identifier)s(PyThreadState *tstate, PyObject *modu
|
|
|
336
322
|
#endif
|
|
337
323
|
|
|
338
324
|
/* The constants only used by this module are created now. */
|
|
339
|
-
NUITKA_PRINT_TRACE("%(
|
|
325
|
+
NUITKA_PRINT_TRACE("%(module_identifier)s: Calling createModuleConstants().\n");
|
|
340
326
|
createModuleConstants(tstate);
|
|
341
327
|
|
|
342
328
|
createModuleCodeObjects();
|
|
@@ -344,12 +330,27 @@ PyObject *modulecode_%(module_identifier)s(PyThreadState *tstate, PyObject *modu
|
|
|
344
330
|
init_done = true;
|
|
345
331
|
}
|
|
346
332
|
|
|
347
|
-
|
|
333
|
+
#if defined(_NUITKA_MODULE) && %(is_top)d
|
|
334
|
+
PyObject *pre_load = IMPORT_EMBEDDED_MODULE(tstate, %(module_name_cstr)s "-preLoad");
|
|
335
|
+
if (pre_load == NULL) {
|
|
336
|
+
return NULL;
|
|
337
|
+
}
|
|
338
|
+
#endif
|
|
348
339
|
|
|
349
|
-
|
|
340
|
+
// PRINT_STRING("in init%(module_identifier)s\n");
|
|
350
341
|
|
|
351
342
|
#ifdef _NUITKA_PLUGIN_DILL_ENABLED
|
|
352
|
-
|
|
343
|
+
{
|
|
344
|
+
char const *module_name_c;
|
|
345
|
+
if (loader_entry != NULL) {
|
|
346
|
+
module_name_c = loader_entry->name;
|
|
347
|
+
} else {
|
|
348
|
+
PyObject *module_name = GET_STRING_DICT_VALUE(moduledict_%(module_identifier)s, (Nuitka_StringObject *)const_str_plain___name__);
|
|
349
|
+
module_name_c = Nuitka_String_AsString(module_name);
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
registerDillPluginTables(tstate, module_name_c, &_method_def_reduce_compiled_function, &_method_def_create_compiled_function);
|
|
353
|
+
}
|
|
353
354
|
#endif
|
|
354
355
|
|
|
355
356
|
// Set "__compiled__" to what version information we have.
|
|
@@ -422,7 +423,7 @@ PyObject *modulecode_%(module_identifier)s(PyThreadState *tstate, PyObject *modu
|
|
|
422
423
|
UPDATE_STRING_DICT0(moduledict_%(module_identifier)s, (Nuitka_StringObject *)const_str_plain___builtins__, value);
|
|
423
424
|
}
|
|
424
425
|
|
|
425
|
-
UPDATE_STRING_DICT0(moduledict_%(module_identifier)s, (Nuitka_StringObject *)const_str_plain___loader__, (
|
|
426
|
+
UPDATE_STRING_DICT0(moduledict_%(module_identifier)s, (Nuitka_StringObject *)const_str_plain___loader__, Nuitka_Loader_New(loader_entry));
|
|
426
427
|
|
|
427
428
|
#if PYTHON_VERSION >= 0x340
|
|
428
429
|
// Set the "__spec__" value
|
|
@@ -461,11 +462,23 @@ PyObject *modulecode_%(module_identifier)s(PyThreadState *tstate, PyObject *modu
|
|
|
461
462
|
// Temp variables if any
|
|
462
463
|
%(temps_decl)s
|
|
463
464
|
|
|
465
|
+
// Module init code if any
|
|
466
|
+
%(module_init_codes)s
|
|
467
|
+
|
|
464
468
|
// Module code.
|
|
465
|
-
%(
|
|
469
|
+
%(module_codes)s
|
|
466
470
|
|
|
467
471
|
// Report to PGO about leaving the module without error.
|
|
468
|
-
PGO_onModuleExit("%(
|
|
472
|
+
PGO_onModuleExit("%(module_identifier)s", false);
|
|
473
|
+
|
|
474
|
+
#if defined(_NUITKA_MODULE) && %(is_top)d
|
|
475
|
+
{
|
|
476
|
+
PyObject *post_load = IMPORT_EMBEDDED_MODULE(tstate, %(module_name_cstr)s "-postLoad");
|
|
477
|
+
if (post_load == NULL) {
|
|
478
|
+
return NULL;
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
#endif
|
|
469
482
|
|
|
470
483
|
Py_INCREF(module_%(module_identifier)s);
|
|
471
484
|
return module_%(module_identifier)s;
|
|
@@ -504,18 +517,10 @@ template_module_external_entry_point = r"""
|
|
|
504
517
|
#define NUITKA_MODULE_INIT_FUNCTION PyMODINIT_FUNC
|
|
505
518
|
#endif
|
|
506
519
|
|
|
507
|
-
|
|
508
|
-
* this is here to hide that.
|
|
509
|
-
*/
|
|
510
|
-
#if PYTHON_VERSION < 0x300
|
|
511
|
-
#define MOD_INIT_DECL(name) NUITKA_MODULE_INIT_FUNCTION init##name(void)
|
|
512
|
-
#else
|
|
513
|
-
#define MOD_INIT_DECL(name) NUITKA_MODULE_INIT_FUNCTION PyInit_##name(void)
|
|
514
|
-
#endif
|
|
520
|
+
static PyObject *orig_dunder_file_value;
|
|
515
521
|
|
|
516
522
|
#if PYTHON_VERSION >= 0x300
|
|
517
523
|
static setattrofunc orig_PyModule_Type_tp_setattro;
|
|
518
|
-
static PyObject *orig_dunder_file_value;
|
|
519
524
|
|
|
520
525
|
/* This is used one time only. */
|
|
521
526
|
static int Nuitka_TopLevelModule_tp_setattro(PyObject *module, PyObject *name, PyObject *value) {
|
|
@@ -545,27 +550,88 @@ static struct PyModuleDef mdef_%(module_identifier)s = {
|
|
|
545
550
|
PyModuleDef_HEAD_INIT,
|
|
546
551
|
NULL, /* m_name, filled later */
|
|
547
552
|
NULL, /* m_doc */
|
|
548
|
-
|
|
553
|
+
%(module_def_size)s, /* m_size */
|
|
549
554
|
NULL, /* m_methods */
|
|
550
|
-
NULL, /*
|
|
555
|
+
NULL, /* m_slots */
|
|
551
556
|
NULL, /* m_traverse */
|
|
552
557
|
NULL, /* m_clear */
|
|
553
558
|
NULL, /* m_free */
|
|
554
559
|
};
|
|
555
560
|
#endif
|
|
556
561
|
|
|
562
|
+
#if PYTHON_VERSION < 0x300
|
|
563
|
+
static void onModuleFileValueRelease(void *v) {
|
|
564
|
+
if (orig_dunder_file_value != NULL) {
|
|
565
|
+
UPDATE_STRING_DICT0(
|
|
566
|
+
moduledict_%(module_identifier)s,
|
|
567
|
+
(Nuitka_StringObject *)const_str_plain___file__,
|
|
568
|
+
orig_dunder_file_value
|
|
569
|
+
);
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
#endif
|
|
573
|
+
|
|
557
574
|
/* The exported interface to CPython. On import of the module, this function
|
|
558
575
|
* gets called. It has to have an exact function name, in cases it's a shared
|
|
559
|
-
* library export.
|
|
576
|
+
* library export.
|
|
560
577
|
*/
|
|
561
578
|
|
|
562
|
-
// Actual name might be different when loaded as a package.
|
|
563
|
-
static char const *module_full_name = "%(module_name)s";
|
|
564
579
|
|
|
565
|
-
|
|
580
|
+
static PyObject *%(module_dll_entry_point)s_phase2(PyObject *module) {
|
|
581
|
+
PyThreadState *tstate = PyThreadState_GET();
|
|
582
|
+
|
|
583
|
+
PyObject *result = modulecode_%(module_identifier)s(tstate, module, NULL);
|
|
584
|
+
|
|
585
|
+
#if PYTHON_VERSION < 0x300
|
|
586
|
+
// Our "__file__" value will not be respected by CPython and one
|
|
587
|
+
// way we can avoid it, is by having a capsule type, that when
|
|
588
|
+
// it gets released, we are called and repair the value.
|
|
589
|
+
|
|
590
|
+
if (HAS_ERROR_OCCURRED(tstate) == false) {
|
|
591
|
+
orig_dunder_file_value = DICT_GET_ITEM_WITH_HASH_ERROR1(tstate, (PyObject *)moduledict_%(module_identifier)s, const_str_plain___file__);
|
|
592
|
+
|
|
593
|
+
PyObject *fake_file_value = PyCObject_FromVoidPtr(NULL, onModuleFileValueRelease);
|
|
594
|
+
|
|
595
|
+
UPDATE_STRING_DICT1(
|
|
596
|
+
moduledict_%(module_identifier)s,
|
|
597
|
+
(Nuitka_StringObject *)const_str_plain___file__,
|
|
598
|
+
fake_file_value
|
|
599
|
+
);
|
|
600
|
+
}
|
|
601
|
+
#else
|
|
602
|
+
if (result != NULL) {
|
|
603
|
+
// Make sure we undo the change of the "__file__" attribute during importing. We do not
|
|
604
|
+
// know how to achieve it for Python2 though. TODO: Find something for Python2 too.
|
|
605
|
+
orig_PyModule_Type_tp_setattro = PyModule_Type.tp_setattro;
|
|
606
|
+
PyModule_Type.tp_setattro = Nuitka_TopLevelModule_tp_setattro;
|
|
607
|
+
|
|
608
|
+
orig_dunder_file_value = DICT_GET_ITEM_WITH_HASH_ERROR1(tstate, (PyObject *)moduledict_%(module_identifier)s, const_str_plain___file__);
|
|
609
|
+
}
|
|
610
|
+
#endif
|
|
611
|
+
|
|
612
|
+
return result;
|
|
613
|
+
}
|
|
614
|
+
|
|
615
|
+
#if %(module_def_size)s >= 0
|
|
616
|
+
static int %(module_dll_entry_point)s_slot(PyObject *module) {
|
|
617
|
+
PyObject *result = %(module_dll_entry_point)s_phase2(module);
|
|
618
|
+
|
|
619
|
+
if (result == NULL) {
|
|
620
|
+
return 1;
|
|
621
|
+
} else {
|
|
622
|
+
return 0;
|
|
623
|
+
}
|
|
624
|
+
}
|
|
625
|
+
#endif
|
|
626
|
+
|
|
627
|
+
NUITKA_MODULE_INIT_FUNCTION (%(module_dll_entry_point)s)(void) {
|
|
628
|
+
#if PYTHON_VERSION < 0x3c0
|
|
566
629
|
if (_Py_PackageContext != NULL) {
|
|
567
|
-
module_full_name
|
|
630
|
+
if (strcmp(module_full_name, _Py_PackageContext) != 0) {
|
|
631
|
+
module_full_name = strdup(_Py_PackageContext);
|
|
632
|
+
}
|
|
568
633
|
}
|
|
634
|
+
#endif
|
|
569
635
|
|
|
570
636
|
#if PYTHON_VERSION < 0x300
|
|
571
637
|
PyObject *module = Py_InitModule4(
|
|
@@ -580,34 +646,32 @@ MOD_INIT_DECL(%(module_identifier)s) {
|
|
|
580
646
|
);
|
|
581
647
|
#else
|
|
582
648
|
mdef_%(module_identifier)s.m_name = module_full_name;
|
|
649
|
+
|
|
650
|
+
#if %(module_def_size)s == -1
|
|
583
651
|
PyObject *module = PyModule_Create(&mdef_%(module_identifier)s);
|
|
584
652
|
CHECK_OBJECT(module);
|
|
585
653
|
|
|
586
|
-
|
|
587
|
-
|
|
654
|
+
{
|
|
655
|
+
NUITKA_MAY_BE_UNUSED bool res = Nuitka_SetModuleString(module_full_name, module);
|
|
656
|
+
assert(res != false);
|
|
657
|
+
}
|
|
658
|
+
|
|
659
|
+
#endif
|
|
588
660
|
#endif
|
|
589
661
|
|
|
590
|
-
|
|
662
|
+
#if %(module_def_size)s >= 0
|
|
663
|
+
static PyModuleDef_Slot _module_slots[] = {
|
|
664
|
+
{Py_mod_exec, %(module_dll_entry_point)s_slot},
|
|
665
|
+
{0, NULL}
|
|
666
|
+
};
|
|
591
667
|
|
|
592
|
-
|
|
593
|
-
modulecode_%(module_identifier)s(tstate, module, NULL);
|
|
668
|
+
mdef_%(module_identifier)s.m_slots = _module_slots;
|
|
594
669
|
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
670
|
+
return PyModuleDef_Init(&mdef_%(module_identifier)s);
|
|
671
|
+
#elif PYTHON_VERSION >= 0x300
|
|
672
|
+
return %(module_dll_entry_point)s_phase2(module);
|
|
598
673
|
#else
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
if (result != NULL) {
|
|
602
|
-
// Make sure we undo the change of the "__file__" attribute during importing. We do not
|
|
603
|
-
// know how to achieve it for Python2 though. TODO: Find something for Python2 too.
|
|
604
|
-
orig_PyModule_Type_tp_setattro = PyModule_Type.tp_setattro;
|
|
605
|
-
PyModule_Type.tp_setattro = Nuitka_TopLevelModule_tp_setattro;
|
|
606
|
-
|
|
607
|
-
orig_dunder_file_value = DICT_GET_ITEM_WITH_HASH_ERROR1(tstate, (PyObject *)moduledict_%(module_identifier)s, const_str_plain___file__);
|
|
608
|
-
}
|
|
609
|
-
|
|
610
|
-
return result;
|
|
674
|
+
%(module_dll_entry_point)s_phase2(module);
|
|
611
675
|
#endif
|
|
612
676
|
}
|
|
613
677
|
"""
|
|
@@ -654,3 +718,18 @@ template_header_guard = """\
|
|
|
654
718
|
from . import TemplateDebugWrapper # isort:skip
|
|
655
719
|
|
|
656
720
|
TemplateDebugWrapper.checkDebug(globals())
|
|
721
|
+
|
|
722
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
723
|
+
# integrates with CPython, but also works on its own.
|
|
724
|
+
#
|
|
725
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
726
|
+
# you may not use this file except in compliance with the License.
|
|
727
|
+
# You may obtain a copy of the License at
|
|
728
|
+
#
|
|
729
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
730
|
+
#
|
|
731
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
732
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
733
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
734
|
+
# See the License for the specific language governing permissions and
|
|
735
|
+
# limitations under the License.
|