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
|
""" Reformulation of Python3.10 match statements.
|
|
19
5
|
|
|
20
6
|
Consult the Developer Manual for information. TODO: Add ability to sync
|
|
@@ -24,20 +10,23 @@ source code comments with Developer Manual sections.
|
|
|
24
10
|
|
|
25
11
|
import ast
|
|
26
12
|
|
|
27
|
-
from nuitka.nodes.AttributeNodes import
|
|
28
|
-
|
|
29
|
-
makeExpressionAttributeLookup,
|
|
30
|
-
)
|
|
13
|
+
from nuitka.nodes.AttributeNodes import ExpressionAttributeCheck
|
|
14
|
+
from nuitka.nodes.BuiltinDictNodes import ExpressionBuiltinDict
|
|
31
15
|
from nuitka.nodes.BuiltinLenNodes import ExpressionBuiltinLen
|
|
32
16
|
from nuitka.nodes.BuiltinTypeNodes import ExpressionBuiltinList
|
|
33
|
-
from nuitka.nodes.ComparisonNodes import
|
|
17
|
+
from nuitka.nodes.ComparisonNodes import (
|
|
18
|
+
ExpressionComparisonIs,
|
|
19
|
+
makeComparisonExpression,
|
|
20
|
+
)
|
|
34
21
|
from nuitka.nodes.ConditionalNodes import makeStatementConditional
|
|
35
22
|
from nuitka.nodes.ConstantRefNodes import makeConstantRefNode
|
|
23
|
+
from nuitka.nodes.DictionaryNodes import StatementDictOperationRemove
|
|
36
24
|
from nuitka.nodes.MatchNodes import ExpressionMatchArgs
|
|
25
|
+
from nuitka.nodes.OperatorNodes import ExpressionOperationBinarySub
|
|
37
26
|
from nuitka.nodes.OutlineNodes import ExpressionOutlineBody
|
|
38
27
|
from nuitka.nodes.ReturnNodes import makeStatementReturnConstant
|
|
39
28
|
from nuitka.nodes.SubscriptNodes import (
|
|
40
|
-
|
|
29
|
+
ExpressionMatchSubscriptCheck,
|
|
41
30
|
ExpressionSubscriptLookup,
|
|
42
31
|
)
|
|
43
32
|
from nuitka.nodes.TypeMatchNodes import (
|
|
@@ -46,12 +35,15 @@ from nuitka.nodes.TypeMatchNodes import (
|
|
|
46
35
|
)
|
|
47
36
|
from nuitka.nodes.TypeNodes import ExpressionBuiltinIsinstance
|
|
48
37
|
from nuitka.nodes.VariableAssignNodes import makeStatementAssignmentVariable
|
|
49
|
-
from nuitka.nodes.VariableNameNodes import
|
|
38
|
+
from nuitka.nodes.VariableNameNodes import (
|
|
39
|
+
ExpressionVariableNameRef,
|
|
40
|
+
StatementAssignmentVariableName,
|
|
41
|
+
)
|
|
50
42
|
from nuitka.nodes.VariableRefNodes import ExpressionTempVariableRef
|
|
51
43
|
from nuitka.nodes.VariableReleaseNodes import makeStatementReleaseVariable
|
|
52
44
|
|
|
53
45
|
from .ReformulationBooleanExpressions import makeAndNode, makeOrNode
|
|
54
|
-
from .ReformulationTryFinallyStatements import
|
|
46
|
+
from .ReformulationTryFinallyStatements import makeTryFinallyReleaseStatement
|
|
55
47
|
from .TreeHelpers import (
|
|
56
48
|
buildNode,
|
|
57
49
|
buildStatementsNode,
|
|
@@ -170,30 +162,38 @@ def _buildMatchSequence(provider, pattern, make_against, source_ref):
|
|
|
170
162
|
# Could special case ">=1" or "==0" with truth checks potentially, but that
|
|
171
163
|
# is for generic optimization to recognize, we don't know much about the
|
|
172
164
|
# matched value at this point yet.
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
165
|
+
if min_length > 0 or exact:
|
|
166
|
+
conditions.append(
|
|
167
|
+
makeComparisonExpression(
|
|
168
|
+
left=ExpressionBuiltinLen(
|
|
169
|
+
value=make_against(),
|
|
170
|
+
source_ref=source_ref,
|
|
171
|
+
),
|
|
172
|
+
right=makeConstantRefNode(constant=min_length, source_ref=source_ref),
|
|
173
|
+
comparator="Eq" if exact else "GtE",
|
|
177
174
|
source_ref=source_ref,
|
|
178
|
-
)
|
|
179
|
-
right=makeConstantRefNode(constant=min_length, source_ref=source_ref),
|
|
180
|
-
comparator="Eq" if exact else "GtE",
|
|
181
|
-
source_ref=source_ref,
|
|
175
|
+
)
|
|
182
176
|
)
|
|
183
|
-
)
|
|
184
177
|
|
|
185
178
|
star_pos = None
|
|
186
179
|
|
|
187
|
-
count
|
|
188
|
-
|
|
189
|
-
for count, seq_pattern in enumerate(pattern.patterns):
|
|
190
|
-
# offset from the start.
|
|
180
|
+
def makeOffsetNode(count):
|
|
191
181
|
if star_pos is None:
|
|
192
|
-
|
|
182
|
+
return makeConstantRefNode(constant=count, source_ref=source_ref)
|
|
193
183
|
else:
|
|
194
|
-
|
|
195
|
-
|
|
184
|
+
return ExpressionOperationBinarySub(
|
|
185
|
+
ExpressionBuiltinLen(
|
|
186
|
+
value=make_against(),
|
|
187
|
+
source_ref=source_ref,
|
|
188
|
+
),
|
|
189
|
+
makeConstantRefNode(
|
|
190
|
+
constant=len(pattern.patterns) - count,
|
|
191
|
+
source_ref=source_ref,
|
|
192
|
+
),
|
|
193
|
+
source_ref=source_ref,
|
|
194
|
+
)
|
|
196
195
|
|
|
196
|
+
for count, seq_pattern in enumerate(pattern.patterns):
|
|
197
197
|
if seq_pattern.__class__ is ast.MatchStar:
|
|
198
198
|
star_pos = count
|
|
199
199
|
|
|
@@ -204,8 +204,8 @@ def _buildMatchSequence(provider, pattern, make_against, source_ref):
|
|
|
204
204
|
assert "!" not in variable_name, variable_name
|
|
205
205
|
|
|
206
206
|
# Last one
|
|
207
|
-
if star_pos == len(pattern.patterns):
|
|
208
|
-
slice_value = slice(
|
|
207
|
+
if star_pos == len(pattern.patterns) - 1:
|
|
208
|
+
slice_value = slice(star_pos, None)
|
|
209
209
|
else:
|
|
210
210
|
slice_value = slice(count, -(len(pattern.patterns) - (count + 1)))
|
|
211
211
|
|
|
@@ -233,9 +233,7 @@ def _buildMatchSequence(provider, pattern, make_against, source_ref):
|
|
|
233
233
|
# It's called before return, pylint: disable=cell-var-from-loop
|
|
234
234
|
make_against=lambda: ExpressionSubscriptLookup(
|
|
235
235
|
expression=make_against(),
|
|
236
|
-
subscript=
|
|
237
|
-
constant=offset, source_ref=source_ref
|
|
238
|
-
),
|
|
236
|
+
subscript=makeOffsetNode(count),
|
|
239
237
|
source_ref=source_ref,
|
|
240
238
|
),
|
|
241
239
|
source_ref=source_ref,
|
|
@@ -266,7 +264,7 @@ def _buildMatchMapping(provider, pattern, make_against, source_ref):
|
|
|
266
264
|
|
|
267
265
|
for key, kwd_pattern in zip(pattern.keys, pattern.patterns):
|
|
268
266
|
conditions.append(
|
|
269
|
-
|
|
267
|
+
ExpressionMatchSubscriptCheck(
|
|
270
268
|
expression=make_against(),
|
|
271
269
|
subscript=buildNode(provider, key, source_ref),
|
|
272
270
|
source_ref=source_ref,
|
|
@@ -291,45 +289,80 @@ def _buildMatchMapping(provider, pattern, make_against, source_ref):
|
|
|
291
289
|
if item_assignments:
|
|
292
290
|
assignments.extend(item_assignments)
|
|
293
291
|
|
|
292
|
+
if pattern.rest:
|
|
293
|
+
assert type(pattern.rest) is str, pattern.rest
|
|
294
|
+
|
|
295
|
+
assignments.append(
|
|
296
|
+
StatementAssignmentVariableName(
|
|
297
|
+
provider=provider,
|
|
298
|
+
variable_name=pattern.rest,
|
|
299
|
+
source=ExpressionBuiltinDict(
|
|
300
|
+
pos_arg=make_against(),
|
|
301
|
+
pairs=(),
|
|
302
|
+
source_ref=source_ref,
|
|
303
|
+
),
|
|
304
|
+
source_ref=source_ref,
|
|
305
|
+
)
|
|
306
|
+
)
|
|
307
|
+
|
|
308
|
+
for key in pattern.keys:
|
|
309
|
+
assert type(key) is ast.Constant, key
|
|
310
|
+
|
|
311
|
+
assignments.append(
|
|
312
|
+
StatementDictOperationRemove(
|
|
313
|
+
dict_arg=ExpressionVariableNameRef(
|
|
314
|
+
provider=provider,
|
|
315
|
+
variable_name=pattern.rest,
|
|
316
|
+
source_ref=source_ref,
|
|
317
|
+
),
|
|
318
|
+
key=buildNode(provider, key, source_ref),
|
|
319
|
+
source_ref=source_ref,
|
|
320
|
+
)
|
|
321
|
+
)
|
|
322
|
+
|
|
294
323
|
return conditions, assignments
|
|
295
324
|
|
|
296
325
|
|
|
297
326
|
def _buildMatchClass(provider, pattern, make_against, source_ref):
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
assignments = []
|
|
327
|
+
# Slightly complicated, due to using an outline body and there is also
|
|
328
|
+
# keyword and positional arguments to deal with, pylint: disable=too-many-locals
|
|
301
329
|
|
|
302
|
-
|
|
303
|
-
ExpressionBuiltinIsinstance(
|
|
304
|
-
instance=make_against(),
|
|
305
|
-
classes=cls_node,
|
|
306
|
-
source_ref=source_ref,
|
|
307
|
-
)
|
|
308
|
-
]
|
|
330
|
+
cls_node = buildNode(provider, pattern.cls, source_ref)
|
|
309
331
|
|
|
310
|
-
assert not (pattern.patterns and pattern.kwd_patterns), (
|
|
311
|
-
source_ref,
|
|
312
|
-
ast.dump(pattern),
|
|
313
|
-
)
|
|
314
332
|
assert len(pattern.kwd_attrs) == len(pattern.kwd_patterns), (
|
|
315
333
|
source_ref,
|
|
316
334
|
ast.dump(pattern),
|
|
317
335
|
)
|
|
318
336
|
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
337
|
+
if len(pattern.kwd_attrs) + len(pattern.patterns) == 0:
|
|
338
|
+
conditions = [
|
|
339
|
+
ExpressionBuiltinIsinstance(
|
|
340
|
+
instance=make_against(),
|
|
341
|
+
classes=cls_node,
|
|
342
|
+
source_ref=source_ref,
|
|
343
|
+
)
|
|
344
|
+
]
|
|
345
|
+
assignments = None
|
|
346
|
+
|
|
347
|
+
return conditions, assignments
|
|
324
348
|
|
|
349
|
+
class_conditions_list = []
|
|
350
|
+
class_assignments_list = []
|
|
351
|
+
|
|
352
|
+
outline_body = ExpressionOutlineBody(
|
|
353
|
+
provider=provider, name="match_class", source_ref=source_ref
|
|
354
|
+
)
|
|
355
|
+
tmp_match_args = outline_body.allocateTempVariable(
|
|
356
|
+
temp_scope=None, name="match_args", temp_type="PyObject *"
|
|
357
|
+
)
|
|
358
|
+
|
|
359
|
+
for count, pos_pattern in enumerate(pattern.patterns):
|
|
325
360
|
# It's called before return, pylint: disable=cell-var-from-loop
|
|
326
361
|
item_conditions, item_assignments = _buildMatch(
|
|
327
362
|
provider=provider,
|
|
328
363
|
make_against=lambda: ExpressionSubscriptLookup(
|
|
329
|
-
expression=
|
|
330
|
-
|
|
331
|
-
max_allowed=len(pattern.patterns),
|
|
332
|
-
source_ref=source_ref,
|
|
364
|
+
expression=ExpressionTempVariableRef(
|
|
365
|
+
variable=tmp_match_args, source_ref=source_ref
|
|
333
366
|
),
|
|
334
367
|
subscript=makeConstantRefNode(constant=count, source_ref=source_ref),
|
|
335
368
|
source_ref=source_ref,
|
|
@@ -338,38 +371,136 @@ def _buildMatchClass(provider, pattern, make_against, source_ref):
|
|
|
338
371
|
source_ref=source_ref,
|
|
339
372
|
)
|
|
340
373
|
|
|
341
|
-
|
|
342
|
-
|
|
374
|
+
class_conditions_list.append(item_conditions)
|
|
375
|
+
class_assignments_list.append(item_assignments)
|
|
343
376
|
|
|
344
|
-
|
|
345
|
-
|
|
377
|
+
for count, (key, kwd_pattern) in enumerate(
|
|
378
|
+
zip(pattern.kwd_attrs, pattern.kwd_patterns)
|
|
379
|
+
):
|
|
380
|
+
# It's called before return, pylint: disable=cell-var-from-loop
|
|
381
|
+
item_conditions, item_assignments = _buildMatch(
|
|
382
|
+
provider=provider,
|
|
383
|
+
make_against=lambda: ExpressionSubscriptLookup(
|
|
384
|
+
expression=ExpressionTempVariableRef(
|
|
385
|
+
variable=tmp_match_args, source_ref=source_ref
|
|
386
|
+
),
|
|
387
|
+
subscript=makeConstantRefNode(
|
|
388
|
+
constant=count + len(pattern.patterns), source_ref=source_ref
|
|
389
|
+
),
|
|
390
|
+
source_ref=source_ref,
|
|
391
|
+
),
|
|
392
|
+
pattern=kwd_pattern,
|
|
393
|
+
source_ref=source_ref,
|
|
394
|
+
)
|
|
346
395
|
|
|
347
|
-
|
|
348
|
-
|
|
396
|
+
item_conditions = item_conditions or []
|
|
397
|
+
|
|
398
|
+
item_conditions.insert(
|
|
399
|
+
0,
|
|
349
400
|
ExpressionAttributeCheck(
|
|
350
401
|
expression=make_against(),
|
|
351
402
|
attribute_name=key,
|
|
352
403
|
source_ref=source_ref,
|
|
404
|
+
),
|
|
405
|
+
)
|
|
406
|
+
|
|
407
|
+
class_conditions_list.append(item_conditions)
|
|
408
|
+
class_assignments_list.append(item_assignments)
|
|
409
|
+
|
|
410
|
+
statements = []
|
|
411
|
+
|
|
412
|
+
for count, (class_conditions, class_assignments) in enumerate(
|
|
413
|
+
zip(class_conditions_list, class_assignments_list)
|
|
414
|
+
):
|
|
415
|
+
class_assignments = class_assignments or ()
|
|
416
|
+
|
|
417
|
+
if class_conditions:
|
|
418
|
+
class_conditions = makeAndNode(
|
|
419
|
+
values=class_conditions, source_ref=source_ref
|
|
420
|
+
)
|
|
421
|
+
else:
|
|
422
|
+
class_conditions = makeConstantRefNode(constant=True, source_ref=source_ref)
|
|
423
|
+
|
|
424
|
+
if count == len(class_assignments_list) - 1:
|
|
425
|
+
class_assignments = list(class_assignments or ())
|
|
426
|
+
class_assignments.append(
|
|
427
|
+
makeStatementReturnConstant(constant=True, source_ref=source_ref)
|
|
428
|
+
)
|
|
429
|
+
|
|
430
|
+
statements.append(
|
|
431
|
+
makeStatementConditional(
|
|
432
|
+
condition=class_conditions,
|
|
433
|
+
yes_branch=makeStatementsSequence(
|
|
434
|
+
statements=class_assignments,
|
|
435
|
+
allow_none=False,
|
|
436
|
+
source_ref=source_ref,
|
|
437
|
+
),
|
|
438
|
+
no_branch=makeStatementReturnConstant(
|
|
439
|
+
constant=False, source_ref=source_ref
|
|
440
|
+
),
|
|
441
|
+
source_ref=source_ref,
|
|
353
442
|
)
|
|
354
443
|
)
|
|
355
444
|
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
445
|
+
assert statements
|
|
446
|
+
|
|
447
|
+
statements = [
|
|
448
|
+
makeStatementAssignmentVariable(
|
|
449
|
+
variable=tmp_match_args,
|
|
450
|
+
source=ExpressionMatchArgs(
|
|
360
451
|
expression=make_against(),
|
|
361
|
-
|
|
452
|
+
# TODO: Maybe use a temp variable instead for caching.
|
|
453
|
+
match_type=cls_node.makeClone(),
|
|
454
|
+
max_allowed=len(pattern.patterns),
|
|
455
|
+
keywords=pattern.kwd_attrs,
|
|
362
456
|
source_ref=source_ref,
|
|
363
457
|
),
|
|
364
|
-
pattern=kwd_pattern,
|
|
365
458
|
source_ref=source_ref,
|
|
366
|
-
)
|
|
459
|
+
),
|
|
460
|
+
makeStatementConditional(
|
|
461
|
+
condition=ExpressionComparisonIs(
|
|
462
|
+
ExpressionTempVariableRef(
|
|
463
|
+
variable=tmp_match_args, source_ref=source_ref
|
|
464
|
+
),
|
|
465
|
+
makeConstantRefNode(constant=None, source_ref=source_ref),
|
|
466
|
+
source_ref=source_ref,
|
|
467
|
+
),
|
|
468
|
+
yes_branch=makeStatementsSequence(
|
|
469
|
+
statements=(
|
|
470
|
+
makeStatementReleaseVariable(
|
|
471
|
+
variable=tmp_match_args, source_ref=source_ref
|
|
472
|
+
),
|
|
473
|
+
makeStatementReturnConstant(constant=False, source_ref=source_ref),
|
|
474
|
+
),
|
|
475
|
+
allow_none=False,
|
|
476
|
+
source_ref=source_ref,
|
|
477
|
+
),
|
|
478
|
+
no_branch=None,
|
|
479
|
+
source_ref=source_ref,
|
|
480
|
+
),
|
|
481
|
+
makeTryFinallyReleaseStatement(
|
|
482
|
+
provider=provider,
|
|
483
|
+
tried=statements,
|
|
484
|
+
variables=(tmp_match_args,),
|
|
485
|
+
source_ref=source_ref,
|
|
486
|
+
),
|
|
487
|
+
]
|
|
367
488
|
|
|
368
|
-
|
|
369
|
-
|
|
489
|
+
body = makeStatementsSequence(
|
|
490
|
+
statements=statements, allow_none=False, source_ref=source_ref
|
|
491
|
+
)
|
|
370
492
|
|
|
371
|
-
|
|
372
|
-
|
|
493
|
+
outline_body.setChildBody(body)
|
|
494
|
+
|
|
495
|
+
conditions = [
|
|
496
|
+
ExpressionBuiltinIsinstance(
|
|
497
|
+
instance=make_against(),
|
|
498
|
+
classes=cls_node,
|
|
499
|
+
source_ref=source_ref,
|
|
500
|
+
),
|
|
501
|
+
outline_body,
|
|
502
|
+
]
|
|
503
|
+
assignments = None
|
|
373
504
|
|
|
374
505
|
return conditions, assignments
|
|
375
506
|
|
|
@@ -533,7 +664,9 @@ def buildMatchNode(provider, node, source_ref):
|
|
|
533
664
|
temp_scope = provider.allocateTempScope("match_statement")
|
|
534
665
|
|
|
535
666
|
# The value matched against, must be released in the end.
|
|
536
|
-
tmp_subject = provider.allocateTempVariable(
|
|
667
|
+
tmp_subject = provider.allocateTempVariable(
|
|
668
|
+
temp_scope, "subject", temp_type="object"
|
|
669
|
+
)
|
|
537
670
|
|
|
538
671
|
# Indicator variable, will end up with C bool type, and need not be released.
|
|
539
672
|
tmp_indicator_variable = provider.allocateTempVariable(
|
|
@@ -624,20 +757,39 @@ def buildMatchNode(provider, node, source_ref):
|
|
|
624
757
|
|
|
625
758
|
return makeStatementsSequence(
|
|
626
759
|
statements=(
|
|
760
|
+
makeStatementAssignmentVariable(
|
|
761
|
+
variable=tmp_indicator_variable,
|
|
762
|
+
source=makeConstantRefNode(constant=False, source_ref=source_ref),
|
|
763
|
+
source_ref=source_ref,
|
|
764
|
+
),
|
|
627
765
|
makeStatementAssignmentVariable(
|
|
628
766
|
variable=tmp_subject,
|
|
629
767
|
source=subject_node,
|
|
630
768
|
source_ref=subject_node.getSourceReference(),
|
|
631
769
|
),
|
|
632
|
-
|
|
770
|
+
makeTryFinallyReleaseStatement(
|
|
633
771
|
provider=provider,
|
|
634
772
|
tried=case_statements,
|
|
635
|
-
|
|
636
|
-
variable=tmp_indicator_variable, source_ref=source_ref
|
|
637
|
-
),
|
|
773
|
+
variables=(tmp_indicator_variable,),
|
|
638
774
|
source_ref=source_ref,
|
|
639
775
|
),
|
|
640
776
|
),
|
|
641
777
|
allow_none=False,
|
|
642
778
|
source_ref=source_ref,
|
|
643
779
|
)
|
|
780
|
+
|
|
781
|
+
|
|
782
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
783
|
+
# integrates with CPython, but also works on its own.
|
|
784
|
+
#
|
|
785
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
786
|
+
# you may not use this file except in compliance with the License.
|
|
787
|
+
# You may obtain a copy of the License at
|
|
788
|
+
#
|
|
789
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
790
|
+
#
|
|
791
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
792
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
793
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
794
|
+
# See the License for the specific language governing permissions and
|
|
795
|
+
# limitations under the License.
|
|
@@ -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
|
""" Multidist re-formulation. """
|
|
19
5
|
|
|
20
6
|
import os
|
|
@@ -32,7 +18,9 @@ def _stripPythonSuffix(filename):
|
|
|
32
18
|
return filename
|
|
33
19
|
|
|
34
20
|
|
|
35
|
-
def createMultidistMainSourceCode(
|
|
21
|
+
def createMultidistMainSourceCode():
|
|
22
|
+
main_filenames = getMainEntryPointFilenames()
|
|
23
|
+
|
|
36
24
|
main_basenames = [
|
|
37
25
|
_stripPythonSuffix(os.path.basename(main_filename))
|
|
38
26
|
for main_filename in main_filenames
|
|
@@ -74,3 +62,19 @@ def locateMultidistModule(module_name):
|
|
|
74
62
|
"py",
|
|
75
63
|
"absolute",
|
|
76
64
|
)
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
68
|
+
# integrates with CPython, but also works on its own.
|
|
69
|
+
#
|
|
70
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
71
|
+
# you may not use this file except in compliance with the License.
|
|
72
|
+
# You may obtain a copy of the License at
|
|
73
|
+
#
|
|
74
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
75
|
+
#
|
|
76
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
77
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
78
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
79
|
+
# See the License for the specific language governing permissions and
|
|
80
|
+
# limitations under the License.
|
|
@@ -1,28 +1,13 @@
|
|
|
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
|
"""
|
|
19
|
-
Namespace packages of Python3
|
|
5
|
+
Namespace packages of Python3
|
|
20
6
|
|
|
21
7
|
"""
|
|
22
8
|
|
|
23
9
|
import os
|
|
24
10
|
|
|
25
|
-
from nuitka import Options
|
|
26
11
|
from nuitka.nodes.AttributeNodes import makeExpressionAttributeLookup
|
|
27
12
|
from nuitka.nodes.CallNodes import ExpressionCallNoKeywords
|
|
28
13
|
from nuitka.nodes.ConstantRefNodes import makeConstantRefNode
|
|
@@ -38,8 +23,9 @@ from nuitka.nodes.ImportNodes import (
|
|
|
38
23
|
makeExpressionImportModuleNameHard,
|
|
39
24
|
)
|
|
40
25
|
from nuitka.nodes.ModuleAttributeNodes import ExpressionModuleAttributeFileRef
|
|
41
|
-
from nuitka.nodes.ModuleNodes import
|
|
26
|
+
from nuitka.nodes.ModuleNodes import CompiledPythonNamespacePackage
|
|
42
27
|
from nuitka.nodes.VariableNameNodes import StatementAssignmentVariableName
|
|
28
|
+
from nuitka.Options import getFileReferenceMode
|
|
43
29
|
from nuitka.PythonVersions import python_version
|
|
44
30
|
|
|
45
31
|
from .TreeHelpers import makeStatementsSequenceFromStatement
|
|
@@ -68,7 +54,7 @@ def _makeCall(module_name, import_name, attribute_name, source_ref, *args):
|
|
|
68
54
|
def getNameSpacePathExpression(package, source_ref):
|
|
69
55
|
"""Create the __path__ expression for a package."""
|
|
70
56
|
|
|
71
|
-
reference_mode =
|
|
57
|
+
reference_mode = getFileReferenceMode()
|
|
72
58
|
|
|
73
59
|
if reference_mode == "original":
|
|
74
60
|
return makeConstantRefNode(
|
|
@@ -81,30 +67,33 @@ def getNameSpacePathExpression(package, source_ref):
|
|
|
81
67
|
source_ref=source_ref,
|
|
82
68
|
)
|
|
83
69
|
else:
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
variable=package.getVariableForReference("__file__"),
|
|
70
|
+
file_ref_node = ExpressionModuleAttributeFileRef(
|
|
71
|
+
variable=package.getVariableForReference("__file__"),
|
|
72
|
+
source_ref=source_ref,
|
|
73
|
+
)
|
|
74
|
+
|
|
75
|
+
if package.isCompiledPythonNamespacePackage():
|
|
76
|
+
elements = [file_ref_node]
|
|
77
|
+
else:
|
|
78
|
+
elements = [
|
|
79
|
+
ExpressionCallNoKeywords(
|
|
80
|
+
called=makeExpressionAttributeLookup(
|
|
81
|
+
expression=makeExpressionImportModuleNameHard(
|
|
82
|
+
module_name="os",
|
|
83
|
+
import_name="path",
|
|
84
|
+
module_guaranteed=True,
|
|
100
85
|
source_ref=source_ref,
|
|
101
86
|
),
|
|
87
|
+
attribute_name="dirname",
|
|
88
|
+
source_ref=source_ref,
|
|
89
|
+
),
|
|
90
|
+
args=makeExpressionMakeTuple(
|
|
91
|
+
elements=(file_ref_node,),
|
|
92
|
+
source_ref=source_ref,
|
|
102
93
|
),
|
|
103
94
|
source_ref=source_ref,
|
|
104
|
-
)
|
|
105
|
-
|
|
106
|
-
)
|
|
107
|
-
]
|
|
95
|
+
)
|
|
96
|
+
]
|
|
108
97
|
|
|
109
98
|
if package.canHaveExternalImports():
|
|
110
99
|
parts = package.getFullName().asString().split(".")
|
|
@@ -152,15 +141,19 @@ def createPathAssignment(package, source_ref):
|
|
|
152
141
|
|
|
153
142
|
|
|
154
143
|
def createPython3NamespacePath(package, source_ref):
|
|
144
|
+
module_name = (
|
|
145
|
+
"_frozen_importlib" if python_version < 0x350 else "_frozen_importlib_external"
|
|
146
|
+
)
|
|
147
|
+
|
|
155
148
|
return StatementAssignmentVariableName(
|
|
156
149
|
provider=package,
|
|
157
150
|
variable_name="__path__",
|
|
158
151
|
source=ExpressionCallNoKeywords(
|
|
159
152
|
called=ExpressionImportName(
|
|
160
153
|
module=makeExpressionImportModuleFixed(
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
154
|
+
using_module_name=package.getFullName(),
|
|
155
|
+
module_name=module_name,
|
|
156
|
+
value_name=module_name,
|
|
164
157
|
source_ref=source_ref,
|
|
165
158
|
),
|
|
166
159
|
import_name="_NamespacePath",
|
|
@@ -187,12 +180,12 @@ def createPython3NamespacePath(package, source_ref):
|
|
|
187
180
|
|
|
188
181
|
|
|
189
182
|
def createNamespacePackage(module_name, reason, is_top, source_ref):
|
|
190
|
-
package =
|
|
183
|
+
package = CompiledPythonNamespacePackage(
|
|
191
184
|
module_name=module_name,
|
|
192
185
|
reason=reason,
|
|
193
186
|
is_top=is_top,
|
|
194
187
|
mode="compiled",
|
|
195
|
-
future_spec=FutureSpec(),
|
|
188
|
+
future_spec=FutureSpec(use_annotations=False),
|
|
196
189
|
source_ref=source_ref,
|
|
197
190
|
)
|
|
198
191
|
|
|
@@ -206,3 +199,19 @@ def createNamespacePackage(module_name, reason, is_top, source_ref):
|
|
|
206
199
|
completeVariableClosures(package)
|
|
207
200
|
|
|
208
201
|
return package
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
205
|
+
# integrates with CPython, but also works on its own.
|
|
206
|
+
#
|
|
207
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
208
|
+
# you may not use this file except in compliance with the License.
|
|
209
|
+
# You may obtain a copy of the License at
|
|
210
|
+
#
|
|
211
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
212
|
+
#
|
|
213
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
214
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
215
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
216
|
+
# See the License for the specific language governing permissions and
|
|
217
|
+
# limitations under the License.
|