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,5 @@
|
|
|
1
|
-
// Copyright
|
|
2
|
-
|
|
3
|
-
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
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
|
+
|
|
18
3
|
// Tools for working with file, and paths cross platform
|
|
19
4
|
// for use in both onefile bootstrap and python compiled
|
|
20
5
|
// program.
|
|
@@ -33,7 +18,9 @@
|
|
|
33
18
|
#include <dlfcn.h>
|
|
34
19
|
#include <fcntl.h>
|
|
35
20
|
#include <libgen.h>
|
|
21
|
+
#if !defined(__wasi__)
|
|
36
22
|
#include <pwd.h>
|
|
23
|
+
#endif
|
|
37
24
|
#include <stdlib.h>
|
|
38
25
|
#include <strings.h>
|
|
39
26
|
#include <sys/mman.h>
|
|
@@ -49,6 +36,62 @@
|
|
|
49
36
|
#include "nuitka/filesystem_paths.h"
|
|
50
37
|
#include "nuitka/safe_string_ops.h"
|
|
51
38
|
|
|
39
|
+
#if defined(__OpenBSD__)
|
|
40
|
+
void _getBinaryPath2(char *binary_filename) {
|
|
41
|
+
int mib[4];
|
|
42
|
+
mib[0] = CTL_KERN;
|
|
43
|
+
mib[1] = KERN_PROC_ARGS;
|
|
44
|
+
mib[2] = getpid();
|
|
45
|
+
mib[3] = KERN_PROC_ARGV;
|
|
46
|
+
|
|
47
|
+
size_t len;
|
|
48
|
+
|
|
49
|
+
if (sysctl(mib, 4, NULL, &len, NULL, 0) < 0) {
|
|
50
|
+
abort();
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
char **argv = argv = malloc(len);
|
|
54
|
+
if (argv == NULL) {
|
|
55
|
+
abort();
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
if (sysctl(mib, 4, argv, &len, NULL, 0) < 0) {
|
|
59
|
+
abort();
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
const char *comm = argv[0];
|
|
63
|
+
|
|
64
|
+
if (*comm == '/' || *comm == '.') {
|
|
65
|
+
if (realpath(comm, binary_filename) == NULL) {
|
|
66
|
+
abort();
|
|
67
|
+
}
|
|
68
|
+
} else {
|
|
69
|
+
char *sp;
|
|
70
|
+
char *xpath = strdup(getenv("PATH"));
|
|
71
|
+
char *path = strtok_r(xpath, ":", &sp);
|
|
72
|
+
struct stat st;
|
|
73
|
+
|
|
74
|
+
if (xpath == NULL) {
|
|
75
|
+
abort();
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
while (path) {
|
|
79
|
+
snprintf(binary_filename, PATH_MAX, "%s/%s", path, comm);
|
|
80
|
+
|
|
81
|
+
if (!stat(binary_filename, &st) && (st.st_mode & S_IXUSR)) {
|
|
82
|
+
break;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
path = strtok_r(NULL, ":", &sp);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
free(xpath);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
free(argv);
|
|
92
|
+
}
|
|
93
|
+
#endif
|
|
94
|
+
|
|
52
95
|
filename_char_t *getBinaryPath(void) {
|
|
53
96
|
static filename_char_t binary_filename[MAXPATHLEN];
|
|
54
97
|
|
|
@@ -64,7 +107,9 @@ filename_char_t *getBinaryPath(void) {
|
|
|
64
107
|
if (res != 0) {
|
|
65
108
|
abort();
|
|
66
109
|
}
|
|
67
|
-
#elif defined(
|
|
110
|
+
#elif defined(__OpenBSD__)
|
|
111
|
+
_getBinaryPath2(binary_filename);
|
|
112
|
+
#elif defined(__FreeBSD__)
|
|
68
113
|
/* Not all of FreeBSD has /proc file system, so use the appropriate
|
|
69
114
|
* "sysctl" instead.
|
|
70
115
|
*/
|
|
@@ -110,7 +155,7 @@ bool readFileChunk(FILE_HANDLE file_handle, void *buffer, size_t size) {
|
|
|
110
155
|
#endif
|
|
111
156
|
}
|
|
112
157
|
|
|
113
|
-
bool writeFileChunk(FILE_HANDLE target_file, void *chunk, size_t chunk_size) {
|
|
158
|
+
bool writeFileChunk(FILE_HANDLE target_file, void const *chunk, size_t chunk_size) {
|
|
114
159
|
#if defined(_WIN32)
|
|
115
160
|
DWORD write_size = 0;
|
|
116
161
|
return WriteFile(target_file, chunk, (DWORD)chunk_size, &write_size, NULL);
|
|
@@ -182,7 +227,7 @@ int64_t getFileSize(FILE_HANDLE file_handle) {
|
|
|
182
227
|
#if defined(__APPLE__)
|
|
183
228
|
#include <copyfile.h>
|
|
184
229
|
#else
|
|
185
|
-
#if defined(__MSYS__) || defined(__HAIKU__)
|
|
230
|
+
#if defined(__MSYS__) || defined(__HAIKU__) || defined(__OpenBSD__) || defined(__wasi__)
|
|
186
231
|
static bool sendfile(int output_file, int input_file, off_t *bytesCopied, size_t count) {
|
|
187
232
|
char buffer[32768];
|
|
188
233
|
|
|
@@ -289,6 +334,14 @@ bool renameFile(filename_char_t const *source, filename_char_t const *dest) {
|
|
|
289
334
|
|
|
290
335
|
#include "nuitka/checksum_tools.h"
|
|
291
336
|
|
|
337
|
+
extern error_code_t getLastErrorCode(void) {
|
|
338
|
+
#if defined(_WIN32)
|
|
339
|
+
return GetLastError();
|
|
340
|
+
#else
|
|
341
|
+
return errno;
|
|
342
|
+
#endif
|
|
343
|
+
}
|
|
344
|
+
|
|
292
345
|
#if defined(_WIN32)
|
|
293
346
|
struct MapFileToMemoryInfo {
|
|
294
347
|
bool error;
|
|
@@ -384,6 +437,7 @@ static struct MapFileToMemoryInfo mapFileToMemory(filename_char_t const *filenam
|
|
|
384
437
|
result.error = true;
|
|
385
438
|
result.error_code = errno;
|
|
386
439
|
result.erroring_function = "open";
|
|
440
|
+
result.file_size = -1;
|
|
387
441
|
return result;
|
|
388
442
|
}
|
|
389
443
|
|
|
@@ -453,15 +507,15 @@ uint32_t getFileCRC32(filename_char_t const *filename) {
|
|
|
453
507
|
|
|
454
508
|
#ifdef _WIN32
|
|
455
509
|
|
|
456
|
-
static DWORD Nuitka_GetFinalPathNameByHandleW(HANDLE hFile, LPWSTR
|
|
457
|
-
typedef DWORD(WINAPI * pfnGetFinalPathNameByHandleW)(HANDLE hFile, LPWSTR
|
|
510
|
+
static DWORD Nuitka_GetFinalPathNameByHandleW(HANDLE hFile, LPWSTR FilePath, DWORD cchFilePath, DWORD dwFlags) {
|
|
511
|
+
typedef DWORD(WINAPI * pfnGetFinalPathNameByHandleW)(HANDLE hFile, LPWSTR FilePath, DWORD cchFilePath,
|
|
458
512
|
DWORD dwFlags);
|
|
459
513
|
|
|
460
514
|
pfnGetFinalPathNameByHandleW fnGetFinalPathNameByHandleW =
|
|
461
515
|
(pfnGetFinalPathNameByHandleW)GetProcAddress(GetModuleHandleA("Kernel32.dll"), "GetFinalPathNameByHandleW");
|
|
462
516
|
|
|
463
517
|
if (fnGetFinalPathNameByHandleW != NULL) {
|
|
464
|
-
return fnGetFinalPathNameByHandleW(hFile,
|
|
518
|
+
return fnGetFinalPathNameByHandleW(hFile, FilePath, cchFilePath, dwFlags);
|
|
465
519
|
} else {
|
|
466
520
|
// There are no symlinks before Windows Vista.
|
|
467
521
|
return 0;
|
|
@@ -505,6 +559,14 @@ static void resolveFileSymbolicLink(wchar_t *resolved_filename, wchar_t const *f
|
|
|
505
559
|
copyStringSafeW(resolved_filename, resolved_filename + 4, resolved_filename_size);
|
|
506
560
|
}
|
|
507
561
|
}
|
|
562
|
+
|
|
563
|
+
// Avoid network filenames with UNC prefix, they won't work for loading
|
|
564
|
+
// extension modules and other things, Python avoids them too.
|
|
565
|
+
if (wcsncmp(resolved_filename, L"\\\\?\\UNC\\", 8) == 0) {
|
|
566
|
+
copyStringSafeW(resolved_filename, resolved_filename + 6, resolved_filename_size);
|
|
567
|
+
resolved_filename[0] = L'\\';
|
|
568
|
+
}
|
|
569
|
+
|
|
508
570
|
} else {
|
|
509
571
|
copyStringSafeW(resolved_filename, filename, resolved_filename_size);
|
|
510
572
|
}
|
|
@@ -514,6 +576,9 @@ static void resolveFileSymbolicLink(wchar_t *resolved_filename, wchar_t const *f
|
|
|
514
576
|
|
|
515
577
|
static void resolveFileSymbolicLink(char *resolved_filename, char const *filename, size_t resolved_filename_size,
|
|
516
578
|
bool resolve_symlinks) {
|
|
579
|
+
#ifdef __wasi__
|
|
580
|
+
copyStringSafe(resolved_filename, filename, resolved_filename_size);
|
|
581
|
+
#else
|
|
517
582
|
if (resolve_symlinks) {
|
|
518
583
|
// At least on macOS, realpath cannot allocate a buffer, itself, so lets
|
|
519
584
|
// use a local one, only on Linux we could use NULL argument and have a
|
|
@@ -530,24 +595,27 @@ static void resolveFileSymbolicLink(char *resolved_filename, char const *filenam
|
|
|
530
595
|
} else {
|
|
531
596
|
copyStringSafe(resolved_filename, filename, resolved_filename_size);
|
|
532
597
|
}
|
|
598
|
+
#endif
|
|
533
599
|
}
|
|
534
600
|
#endif
|
|
535
601
|
|
|
536
602
|
#ifdef _WIN32
|
|
537
603
|
wchar_t const *getBinaryFilenameWideChars(bool resolve_symlinks) {
|
|
538
|
-
static wchar_t binary_filename[MAXPATHLEN + 1];
|
|
539
|
-
static
|
|
604
|
+
static wchar_t binary_filename[MAXPATHLEN + 1] = {0};
|
|
605
|
+
static wchar_t binary_filename_resolved[MAXPATHLEN + 1] = {0};
|
|
606
|
+
|
|
607
|
+
wchar_t *buffer = resolve_symlinks ? binary_filename : binary_filename_resolved;
|
|
608
|
+
assert(sizeof(binary_filename) == sizeof(binary_filename_resolved));
|
|
540
609
|
|
|
541
|
-
if (
|
|
542
|
-
DWORD res = GetModuleFileNameW(NULL,
|
|
610
|
+
if (buffer[0] == 0) {
|
|
611
|
+
DWORD res = GetModuleFileNameW(NULL, buffer, sizeof(binary_filename) / sizeof(wchar_t));
|
|
543
612
|
assert(res != 0);
|
|
544
613
|
|
|
545
614
|
// Resolve any symlinks we were invoked via
|
|
546
|
-
resolveFileSymbolicLink(
|
|
547
|
-
resolve_symlinks);
|
|
615
|
+
resolveFileSymbolicLink(buffer, buffer, sizeof(binary_filename) / sizeof(wchar_t), resolve_symlinks);
|
|
548
616
|
}
|
|
549
617
|
|
|
550
|
-
return
|
|
618
|
+
return buffer;
|
|
551
619
|
}
|
|
552
620
|
#endif
|
|
553
621
|
|
|
@@ -616,8 +684,13 @@ char const *getBinaryFilenameHostEncoded(bool resolve_symlinks) {
|
|
|
616
684
|
|
|
617
685
|
// Resolve any symlinks we were invoked via
|
|
618
686
|
resolveFileSymbolicLink(binary_filename_target, binary_filename_target, buffer_size, resolve_symlinks);
|
|
619
|
-
|
|
620
|
-
|
|
687
|
+
#elif defined(__wasi__)
|
|
688
|
+
const char *wasi_filename = "program.wasm";
|
|
689
|
+
strncpy(binary_filename_resolved, wasi_filename, MAXPATHLEN);
|
|
690
|
+
#elif defined(__OpenBSD__)
|
|
691
|
+
_getBinaryPath2(binary_filename_target);
|
|
692
|
+
resolveFileSymbolicLink(binary_filename_target, binary_filename_target, buffer_size, resolve_symlinks);
|
|
693
|
+
#elif defined(__FreeBSD__)
|
|
621
694
|
/* Not all of FreeBSD has /proc file system, so use the appropriate
|
|
622
695
|
* "sysctl" instead.
|
|
623
696
|
*/
|
|
@@ -682,6 +755,8 @@ static bool appendStringCSIDLPathW(wchar_t *target, int csidl_id, size_t buffer_
|
|
|
682
755
|
return false;
|
|
683
756
|
}
|
|
684
757
|
#else
|
|
758
|
+
// spell-checker: ignore USERPROFILE,LOCALAPPDATA
|
|
759
|
+
|
|
685
760
|
DWORD res = 0;
|
|
686
761
|
if (csidl_id == CSIDL_PROFILE) {
|
|
687
762
|
res = GetEnvironmentVariableW(L"USERPROFILE", path_buffer, sizeof(path_buffer));
|
|
@@ -704,101 +779,108 @@ bool expandTemplatePathW(wchar_t *target, wchar_t const *source, size_t buffer_s
|
|
|
704
779
|
wchar_t var_name[1024];
|
|
705
780
|
wchar_t *w = NULL;
|
|
706
781
|
|
|
782
|
+
bool var_started = false;
|
|
783
|
+
|
|
707
784
|
while (*source != 0) {
|
|
708
|
-
if (*source == '
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
*w = 0;
|
|
785
|
+
if (*source == L'{') {
|
|
786
|
+
assert(var_started == false);
|
|
787
|
+
var_started = true;
|
|
712
788
|
|
|
713
|
-
|
|
789
|
+
w = var_name;
|
|
790
|
+
*w = 0;
|
|
714
791
|
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
792
|
+
source++;
|
|
793
|
+
|
|
794
|
+
continue;
|
|
795
|
+
} else if (*source == L'}') {
|
|
796
|
+
assert(var_started == true);
|
|
797
|
+
var_started = false;
|
|
718
798
|
|
|
719
|
-
|
|
799
|
+
*w = 0;
|
|
720
800
|
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
801
|
+
bool is_path = false;
|
|
802
|
+
|
|
803
|
+
if (wcsicmp(var_name, L"TEMP") == 0) {
|
|
804
|
+
GetTempPathW((DWORD)buffer_size, target);
|
|
805
|
+
is_path = true;
|
|
806
|
+
} else if (wcsicmp(var_name, L"PROGRAM") == 0) {
|
|
725
807
|
#if _NUITKA_ONEFILE_TEMP_BOOL == 1
|
|
726
|
-
|
|
808
|
+
appendWStringSafeW(target, __wargv[0], buffer_size);
|
|
727
809
|
#else
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
810
|
+
if (!GetModuleFileNameW(NULL, target, (DWORD)buffer_size)) {
|
|
811
|
+
return false;
|
|
812
|
+
}
|
|
731
813
|
#endif
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
814
|
+
} else if (wcsicmp(var_name, L"PROGRAM_BASE") == 0) {
|
|
815
|
+
if (expandTemplatePathW(target, L"{PROGRAM}", buffer_size - wcslen(target)) == false) {
|
|
816
|
+
return false;
|
|
817
|
+
}
|
|
736
818
|
|
|
737
|
-
|
|
819
|
+
size_t length = wcslen(target);
|
|
738
820
|
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
821
|
+
if ((length >= 4) && (wcsicmp(target + length - 4, L".exe") == 0)) {
|
|
822
|
+
target[length - 4] = 0;
|
|
823
|
+
}
|
|
824
|
+
} else if (wcsicmp(var_name, L"PID") == 0) {
|
|
825
|
+
char pid_buffer[128];
|
|
826
|
+
snprintf(pid_buffer, sizeof(pid_buffer), "%ld", GetCurrentProcessId());
|
|
745
827
|
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
828
|
+
appendStringSafeW(target, pid_buffer, buffer_size);
|
|
829
|
+
} else if (wcsicmp(var_name, L"HOME") == 0) {
|
|
830
|
+
if (appendStringCSIDLPathW(target, CSIDL_PROFILE, buffer_size) == false) {
|
|
831
|
+
return false;
|
|
832
|
+
}
|
|
833
|
+
is_path = true;
|
|
834
|
+
} else if (wcsicmp(var_name, L"CACHE_DIR") == 0) {
|
|
835
|
+
if (appendStringCSIDLPathW(target, CSIDL_LOCAL_APPDATA, buffer_size) == false) {
|
|
836
|
+
return false;
|
|
837
|
+
}
|
|
838
|
+
is_path = true;
|
|
757
839
|
#ifdef NUITKA_COMPANY_NAME
|
|
758
|
-
|
|
759
|
-
|
|
840
|
+
} else if (wcsicmp(var_name, L"COMPANY") == 0) {
|
|
841
|
+
appendWStringSafeW(target, L"" NUITKA_COMPANY_NAME, buffer_size);
|
|
760
842
|
#endif
|
|
761
843
|
#ifdef NUITKA_PRODUCT_NAME
|
|
762
|
-
|
|
763
|
-
|
|
844
|
+
} else if (wcsicmp(var_name, L"PRODUCT") == 0) {
|
|
845
|
+
appendWStringSafeW(target, L"" NUITKA_PRODUCT_NAME, buffer_size);
|
|
764
846
|
#endif
|
|
765
847
|
#ifdef NUITKA_VERSION_COMBINED
|
|
766
|
-
|
|
767
|
-
|
|
848
|
+
} else if (wcsicmp(var_name, L"VERSION") == 0) {
|
|
849
|
+
appendWStringSafeW(target, L"" NUITKA_VERSION_COMBINED, buffer_size);
|
|
768
850
|
#endif
|
|
769
|
-
|
|
770
|
-
|
|
851
|
+
} else if (wcsicmp(var_name, L"TIME") == 0) {
|
|
852
|
+
char time_buffer[1024];
|
|
771
853
|
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
854
|
+
// spell-checker: ignore LPFILETIME
|
|
855
|
+
__int64 time = 0;
|
|
856
|
+
assert(sizeof(time) == sizeof(FILETIME));
|
|
857
|
+
GetSystemTimeAsFileTime((LPFILETIME)&time);
|
|
775
858
|
|
|
776
|
-
|
|
859
|
+
snprintf(time_buffer, sizeof(time_buffer), "%lld", time);
|
|
777
860
|
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
861
|
+
appendStringSafeW(target, time_buffer, buffer_size);
|
|
862
|
+
} else {
|
|
863
|
+
return false;
|
|
864
|
+
}
|
|
782
865
|
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
866
|
+
// Skip over appended stuff.
|
|
867
|
+
while (*target) {
|
|
868
|
+
target++;
|
|
869
|
+
buffer_size -= 1;
|
|
870
|
+
}
|
|
788
871
|
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
}
|
|
872
|
+
if (is_path) {
|
|
873
|
+
while (*(target - 1) == FILENAME_SEP_CHAR) {
|
|
874
|
+
target--;
|
|
875
|
+
*target = 0;
|
|
876
|
+
buffer_size += 1;
|
|
795
877
|
}
|
|
878
|
+
}
|
|
796
879
|
|
|
797
|
-
|
|
798
|
-
|
|
880
|
+
w = NULL;
|
|
881
|
+
source++;
|
|
799
882
|
|
|
800
|
-
|
|
801
|
-
}
|
|
883
|
+
continue;
|
|
802
884
|
}
|
|
803
885
|
|
|
804
886
|
if (w != NULL) {
|
|
@@ -811,11 +893,13 @@ bool expandTemplatePathW(wchar_t *target, wchar_t const *source, size_t buffer_s
|
|
|
811
893
|
}
|
|
812
894
|
|
|
813
895
|
*target++ = *source++;
|
|
896
|
+
*target = 0;
|
|
814
897
|
buffer_size -= 1;
|
|
815
898
|
}
|
|
816
899
|
|
|
817
900
|
*target = 0;
|
|
818
901
|
|
|
902
|
+
assert(var_started == false);
|
|
819
903
|
return true;
|
|
820
904
|
}
|
|
821
905
|
|
|
@@ -827,114 +911,124 @@ bool expandTemplatePath(char *target, char const *source, size_t buffer_size) {
|
|
|
827
911
|
char var_name[1024];
|
|
828
912
|
char *w = NULL;
|
|
829
913
|
|
|
830
|
-
|
|
831
|
-
if (*source == '%') {
|
|
832
|
-
if (w == NULL) {
|
|
833
|
-
w = var_name;
|
|
834
|
-
*w = 0;
|
|
914
|
+
NUITKA_MAY_BE_UNUSED bool var_started = false;
|
|
835
915
|
|
|
836
|
-
|
|
916
|
+
while (*source != 0) {
|
|
917
|
+
if (*source == '{') {
|
|
918
|
+
assert(var_started == false);
|
|
919
|
+
var_started = true;
|
|
837
920
|
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
*w = 0;
|
|
921
|
+
w = var_name;
|
|
922
|
+
*w = 0;
|
|
841
923
|
|
|
842
|
-
|
|
924
|
+
source++;
|
|
843
925
|
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
926
|
+
continue;
|
|
927
|
+
} else if (*source == '}') {
|
|
928
|
+
assert(var_started == true);
|
|
929
|
+
var_started = false;
|
|
930
|
+
*w = 0;
|
|
849
931
|
|
|
850
|
-
|
|
851
|
-
is_path = true;
|
|
852
|
-
} else if (strcasecmp(var_name, "PROGRAM") == 0) {
|
|
853
|
-
char const *exe_name = getBinaryFilenameHostEncoded(false);
|
|
932
|
+
bool is_path = false;
|
|
854
933
|
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
934
|
+
if (strcasecmp(var_name, "TEMP") == 0) {
|
|
935
|
+
char const *tmp_dir = getenv("TMPDIR");
|
|
936
|
+
if (tmp_dir == NULL) {
|
|
937
|
+
tmp_dir = "/tmp";
|
|
938
|
+
}
|
|
860
939
|
|
|
861
|
-
|
|
940
|
+
appendStringSafe(target, tmp_dir, buffer_size);
|
|
941
|
+
is_path = true;
|
|
942
|
+
} else if (strcasecmp(var_name, "PROGRAM") == 0) {
|
|
943
|
+
char const *exe_name = getBinaryFilenameHostEncoded(false);
|
|
862
944
|
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
945
|
+
appendStringSafe(target, exe_name, buffer_size);
|
|
946
|
+
} else if (strcasecmp(var_name, "PROGRAM_BASE") == 0) {
|
|
947
|
+
if (expandTemplatePath(target, "{PROGRAM}", buffer_size - strlen(target)) == false) {
|
|
948
|
+
return false;
|
|
949
|
+
}
|
|
868
950
|
|
|
869
|
-
|
|
951
|
+
size_t length = strlen(target);
|
|
870
952
|
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
953
|
+
if ((length >= 4) && (strcasecmp(target + length - 4, ".bin") == 0)) {
|
|
954
|
+
target[length - 4] = 0;
|
|
955
|
+
}
|
|
956
|
+
} else if (strcasecmp(var_name, "PID") == 0) {
|
|
957
|
+
char pid_buffer[128];
|
|
874
958
|
|
|
875
|
-
|
|
876
|
-
struct passwd *pw_data = getpwuid(getuid());
|
|
959
|
+
snprintf(pid_buffer, sizeof(pid_buffer), "%d", getpid());
|
|
877
960
|
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
961
|
+
appendStringSafe(target, pid_buffer, buffer_size);
|
|
962
|
+
} else if (strcasecmp(var_name, "HOME") == 0) {
|
|
963
|
+
char const *home_path = getenv("HOME");
|
|
964
|
+
if (home_path == NULL) {
|
|
965
|
+
#ifdef __wasi__
|
|
966
|
+
return false;
|
|
967
|
+
#else
|
|
968
|
+
struct passwd *pw_data = getpwuid(getuid());
|
|
881
969
|
|
|
882
|
-
|
|
970
|
+
if (unlikely(pw_data == NULL)) {
|
|
971
|
+
return false;
|
|
883
972
|
}
|
|
884
973
|
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
}
|
|
888
|
-
|
|
974
|
+
home_path = pw_data->pw_dir;
|
|
975
|
+
#endif
|
|
976
|
+
}
|
|
977
|
+
|
|
978
|
+
appendStringSafe(target, home_path, buffer_size);
|
|
979
|
+
is_path = true;
|
|
980
|
+
} else if (strcasecmp(var_name, "CACHE_DIR") == 0) {
|
|
981
|
+
char const *xdg_cache_home = getenv("XDG_CACHE_HOME");
|
|
982
|
+
|
|
983
|
+
if (xdg_cache_home != NULL && xdg_cache_home[0] == '/') {
|
|
984
|
+
appendStringSafe(target, xdg_cache_home, buffer_size);
|
|
985
|
+
} else {
|
|
986
|
+
if (expandTemplatePath(target, "{HOME}/.cache", buffer_size - strlen(target)) == false) {
|
|
889
987
|
return false;
|
|
890
988
|
}
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
appendStringSafe(target, ".cache", buffer_size);
|
|
894
|
-
is_path = true;
|
|
989
|
+
}
|
|
990
|
+
is_path = true;
|
|
895
991
|
#ifdef NUITKA_COMPANY_NAME
|
|
896
|
-
|
|
897
|
-
|
|
992
|
+
} else if (strcasecmp(var_name, "COMPANY") == 0) {
|
|
993
|
+
appendStringSafe(target, NUITKA_COMPANY_NAME, buffer_size);
|
|
898
994
|
#endif
|
|
899
995
|
#ifdef NUITKA_PRODUCT_NAME
|
|
900
|
-
|
|
901
|
-
|
|
996
|
+
} else if (strcasecmp(var_name, "PRODUCT") == 0) {
|
|
997
|
+
appendStringSafe(target, NUITKA_PRODUCT_NAME, buffer_size);
|
|
902
998
|
#endif
|
|
903
999
|
#ifdef NUITKA_VERSION_COMBINED
|
|
904
|
-
|
|
905
|
-
|
|
1000
|
+
} else if (strcasecmp(var_name, "VERSION") == 0) {
|
|
1001
|
+
appendStringSafe(target, NUITKA_VERSION_COMBINED, buffer_size);
|
|
906
1002
|
#endif
|
|
907
|
-
|
|
908
|
-
|
|
1003
|
+
} else if (strcasecmp(var_name, "TIME") == 0) {
|
|
1004
|
+
char time_buffer[1024];
|
|
909
1005
|
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
(long)current_time.tv_usec);
|
|
1006
|
+
struct timeval current_time;
|
|
1007
|
+
gettimeofday(¤t_time, NULL);
|
|
1008
|
+
snprintf(time_buffer, sizeof(time_buffer), "%ld_%ld", current_time.tv_sec, (long)current_time.tv_usec);
|
|
914
1009
|
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
1010
|
+
appendStringSafe(target, time_buffer, buffer_size);
|
|
1011
|
+
} else {
|
|
1012
|
+
return false;
|
|
1013
|
+
}
|
|
1014
|
+
// Skip over appended stuff.
|
|
1015
|
+
while (*target) {
|
|
1016
|
+
target++;
|
|
1017
|
+
buffer_size -= 1;
|
|
1018
|
+
}
|
|
924
1019
|
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
}
|
|
1020
|
+
if (is_path) {
|
|
1021
|
+
while (*(target - 1) == FILENAME_SEP_CHAR) {
|
|
1022
|
+
target--;
|
|
1023
|
+
*target = 0;
|
|
1024
|
+
buffer_size += 1;
|
|
931
1025
|
}
|
|
1026
|
+
}
|
|
932
1027
|
|
|
933
|
-
|
|
934
|
-
|
|
1028
|
+
w = NULL;
|
|
1029
|
+
source++;
|
|
935
1030
|
|
|
936
|
-
|
|
937
|
-
}
|
|
1031
|
+
continue;
|
|
938
1032
|
}
|
|
939
1033
|
|
|
940
1034
|
if (w != NULL) {
|
|
@@ -947,12 +1041,29 @@ bool expandTemplatePath(char *target, char const *source, size_t buffer_size) {
|
|
|
947
1041
|
}
|
|
948
1042
|
|
|
949
1043
|
*target++ = *source++;
|
|
1044
|
+
*target = 0;
|
|
950
1045
|
buffer_size -= 1;
|
|
951
1046
|
}
|
|
952
1047
|
|
|
953
1048
|
*target = 0;
|
|
954
1049
|
|
|
1050
|
+
assert(var_started == false);
|
|
955
1051
|
return true;
|
|
956
1052
|
}
|
|
957
1053
|
|
|
958
1054
|
#endif
|
|
1055
|
+
|
|
1056
|
+
// Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
1057
|
+
// integrates with CPython, but also works on its own.
|
|
1058
|
+
//
|
|
1059
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
1060
|
+
// you may not use this file except in compliance with the License.
|
|
1061
|
+
// You may obtain a copy of the License at
|
|
1062
|
+
//
|
|
1063
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
1064
|
+
//
|
|
1065
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
1066
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
1067
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1068
|
+
// See the License for the specific language governing permissions and
|
|
1069
|
+
// limitations under the License.
|