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

Files changed (63) hide show
  1. {Nuitka_winsvc-2.3.3.dist-info → Nuitka_winsvc-2.3.11.dist-info}/METADATA +1 -1
  2. {Nuitka_winsvc-2.3.3.dist-info → Nuitka_winsvc-2.3.11.dist-info}/RECORD +63 -42
  3. {Nuitka_winsvc-2.3.3.dist-info → Nuitka_winsvc-2.3.11.dist-info}/WHEEL +1 -1
  4. nuitka/Options.py +1 -1
  5. nuitka/PythonFlavors.py +15 -0
  6. nuitka/Tracing.py +26 -23
  7. nuitka/Version.py +1 -1
  8. nuitka/build/SconsUtils.py +1 -1
  9. nuitka/build/include/nuitka/compiled_function.h +2 -0
  10. nuitka/build/inline_copy/python_hacl/LICENSE.txt +201 -0
  11. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.c +1430 -0
  12. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.h +66 -0
  13. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.c +463 -0
  14. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.h +66 -0
  15. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.c +1273 -0
  16. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.h +204 -0
  17. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.c +734 -0
  18. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.h +131 -0
  19. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Streaming_Types.h +83 -0
  20. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt128_Verified.h +346 -0
  21. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt_8_16_32_64.h +107 -0
  22. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/fstar_uint128_struct_endianness.h +68 -0
  23. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/internal/target.h +293 -0
  24. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/lowstar_endianness.h +231 -0
  25. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/types.h +14 -0
  26. nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_MD5.h +56 -0
  27. nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA1.h +56 -0
  28. nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA2.h +164 -0
  29. nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA3.h +65 -0
  30. nuitka/build/inline_copy/python_hacl/hacl_312/python_hacl_namespaces.h +89 -0
  31. nuitka/build/static_src/CompiledCodeHelpers.c +2 -0
  32. nuitka/build/static_src/CompiledFrameType.c +2 -5
  33. nuitka/build/static_src/CompiledFunctionType.c +43 -4
  34. nuitka/build/static_src/HelpersAllocator.c +0 -2
  35. nuitka/build/static_src/HelpersBuiltin.c +2 -2
  36. nuitka/build/static_src/HelpersHeapStorage.c +4 -0
  37. nuitka/build/static_src/MainProgram.c +17 -0
  38. nuitka/build/static_src/MetaPathBasedLoader.c +77 -48
  39. nuitka/build/static_src/MetaPathBasedLoaderResourceReaderFiles.c +29 -0
  40. nuitka/code_generation/templates/CodeTemplatesModules.py +1 -10
  41. nuitka/freezer/DllDependenciesCommon.py +28 -3
  42. nuitka/freezer/DllDependenciesMacOS.py +23 -2
  43. nuitka/freezer/DllDependenciesWin32.py +6 -1
  44. nuitka/importing/Importing.py +5 -1
  45. nuitka/nodes/FunctionNodes.py +4 -1
  46. nuitka/nodes/ModuleNodes.py +3 -4
  47. nuitka/nodes/NodeBases.py +10 -9
  48. nuitka/nodes/shapes/BuiltinTypeShapes.py +21 -1
  49. nuitka/plugins/PluginBase.py +11 -3
  50. nuitka/plugins/standard/KivyPlugin.py +10 -0
  51. nuitka/plugins/standard/standard.nuitka-package.config.yml +240 -25
  52. nuitka/plugins/standard/stdlib3.nuitka-package.config.yml +38 -2
  53. nuitka/tools/testing/Common.py +22 -2
  54. nuitka/tree/InternalModule.py +1 -1
  55. nuitka/tree/ReformulationFunctionStatements.py +1 -0
  56. nuitka/utils/Execution.py +8 -7
  57. nuitka/utils/FileOperations.py +38 -1
  58. nuitka/utils/SharedLibraries.py +38 -34
  59. {Nuitka_winsvc-2.3.3.data → Nuitka_winsvc-2.3.11.data}/scripts/nuitka-run.bat +0 -0
  60. {Nuitka_winsvc-2.3.3.data → Nuitka_winsvc-2.3.11.data}/scripts/nuitka.bat +0 -0
  61. {Nuitka_winsvc-2.3.3.dist-info → Nuitka_winsvc-2.3.11.dist-info}/LICENSE.txt +0 -0
  62. {Nuitka_winsvc-2.3.3.dist-info → Nuitka_winsvc-2.3.11.dist-info}/entry_points.txt +0 -0
  63. {Nuitka_winsvc-2.3.3.dist-info → Nuitka_winsvc-2.3.11.dist-info}/top_level.txt +0 -0
nuitka/utils/Execution.py CHANGED
@@ -352,13 +352,14 @@ def executeToolChecked(
352
352
  # Allow to avoid repeated scans in PATH for the tool.
353
353
  command[0] = getExecutablePath(tool)
354
354
 
355
- process = subprocess.Popen(
356
- command,
357
- stdin=getNullInput(),
358
- stdout=subprocess.PIPE,
359
- stderr=subprocess.PIPE,
360
- shell=False,
361
- )
355
+ with withEnvironmentVarOverridden("LC_ALL", "C"):
356
+ process = subprocess.Popen(
357
+ command,
358
+ stdin=getNullInput(),
359
+ stdout=subprocess.PIPE,
360
+ stderr=subprocess.PIPE,
361
+ shell=False,
362
+ )
362
363
 
363
364
  stdout, stderr = process.communicate()
364
365
  result = process.poll()
@@ -290,7 +290,7 @@ def _restoreWindowsPath(orig_path, path):
290
290
  drive_real_path = os.path.realpath(drive + "\\")
291
291
  assert path.startswith(drive_real_path)
292
292
 
293
- path = drive + path[len(drive_real_path) :]
293
+ path = drive + "\\" + path[len(drive_real_path) :]
294
294
  else:
295
295
  path = path.strip(os.path.sep)
296
296
 
@@ -1469,6 +1469,43 @@ def openPickleFile(filename, mode, protocol=-1):
1469
1469
  )
1470
1470
 
1471
1471
 
1472
+ def isLegalPath(path):
1473
+ illegal_suffixes = "/\\"
1474
+ illegal_chars = "\0"
1475
+
1476
+ if isWin32Windows():
1477
+ illegal_chars += r'*"/<>:|?'
1478
+
1479
+ illegal_chars += "".join(chr(x) for x in range(1, 32))
1480
+ illegal_suffixes += " ."
1481
+
1482
+ if isMacOS():
1483
+ illegal_chars += ":"
1484
+
1485
+ for c in path:
1486
+ if c in illegal_chars:
1487
+ return False, "contains illegal character %r" % c
1488
+
1489
+ for illegal_suffix in illegal_suffixes:
1490
+ if path.endswith(illegal_suffix):
1491
+ return False, "contains illegal suffix %r" % illegal_suffix
1492
+
1493
+ return True, None
1494
+
1495
+
1496
+ def getParentDirectories(path):
1497
+ """Get all parent directories of a path in descending order."""
1498
+
1499
+ while 1:
1500
+ old_path = path
1501
+ path = os.path.dirname(path)
1502
+
1503
+ if not path or path == old_path:
1504
+ return
1505
+
1506
+ yield path
1507
+
1508
+
1472
1509
  # Part of "Nuitka", an optimizing Python compiler that is compatible and
1473
1510
  # integrates with CPython, but also works on its own.
1474
1511
  #
@@ -17,11 +17,7 @@ from nuitka.Options import getMacOSTargetArch, isShowInclusion, isUnstripped
17
17
  from nuitka.PythonVersions import python_version
18
18
  from nuitka.Tracing import inclusion_logger, postprocessing_logger
19
19
 
20
- from .Execution import (
21
- executeToolChecked,
22
- withEnvironmentPathAdded,
23
- withEnvironmentVarOverridden,
24
- )
20
+ from .Execution import executeToolChecked, withEnvironmentPathAdded
25
21
  from .FileOperations import (
26
22
  addFileExecutablePermission,
27
23
  changeFilenameExtension,
@@ -87,13 +83,12 @@ def locateDLL(dll_name):
87
83
  name=dll_name, paths=["/lib", "/usr/lib", "/usr/local/lib"]
88
84
  )
89
85
 
90
- with withEnvironmentVarOverridden("LANG", "C"):
91
- # TODO: Could and probably should cache "ldconfig -p" output to avoid forks
92
- output = executeToolChecked(
93
- logger=postprocessing_logger,
94
- command=("/sbin/ldconfig", "-p"),
95
- absence_message=_ldconfig_usage,
96
- )
86
+ # TODO: Could and probably should cache "ldconfig -p" output to avoid forks
87
+ output = executeToolChecked(
88
+ logger=postprocessing_logger,
89
+ command=("/sbin/ldconfig", "-p"),
90
+ absence_message=_ldconfig_usage,
91
+ )
97
92
 
98
93
  dll_map = {}
99
94
 
@@ -349,14 +344,25 @@ def getSharedLibraryRPATH(filename):
349
344
 
350
345
 
351
346
  def _filterPatchelfErrorOutput(stderr):
347
+ non_errors = []
348
+
349
+ def isNonErrorExit(line):
350
+ if b"cannot find section '.dynamic'" in line:
351
+ non_errors.append(line)
352
+
353
+ return True
354
+
355
+ return False
356
+
352
357
  stderr = b"\n".join(
353
358
  line
354
359
  for line in stderr.splitlines()
355
360
  if line
356
361
  if b"warning: working around" not in line
362
+ if not isNonErrorExit(line)
357
363
  )
358
364
 
359
- return None, stderr
365
+ return (0 if non_errors else None), stderr
360
366
 
361
367
 
362
368
  _patchelf_usage = """\
@@ -383,13 +389,12 @@ installed. Use 'apt/dnf/yum install patchelf' first.""",
383
389
 
384
390
  def _setSharedLibraryRPATHElf(filename, rpath):
385
391
  # patchelf --set-rpath "$ORIGIN/path/to/library" <executable>
386
- with withEnvironmentVarOverridden("LANG", "C"):
387
- executeToolChecked(
388
- logger=postprocessing_logger,
389
- command=("patchelf", "--set-rpath", rpath, filename),
390
- stderr_filter=_filterPatchelfErrorOutput,
391
- absence_message=_patchelf_usage,
392
- )
392
+ executeToolChecked(
393
+ logger=postprocessing_logger,
394
+ command=("patchelf", "--set-rpath", rpath, filename),
395
+ stderr_filter=_filterPatchelfErrorOutput,
396
+ absence_message=_patchelf_usage,
397
+ )
393
398
 
394
399
 
395
400
  def _filterInstallNameToolErrorOutput(stderr):
@@ -600,7 +605,7 @@ def _getFileCommandOutput(filename):
600
605
 
601
606
 
602
607
  def hasUniversalOrMatchingMacOSArchitecture(filename):
603
- assert isMacOS()
608
+ assert isMacOS() and os.path.isfile(filename), filename
604
609
 
605
610
  file_output = _getFileCommandOutput(filename)
606
611
 
@@ -788,20 +793,19 @@ def cleanupHeaderForAndroid(filename):
788
793
  created by default.
789
794
  """
790
795
 
791
- with withEnvironmentVarOverridden("LANG", "C"):
792
- executeToolChecked(
793
- logger=postprocessing_logger,
794
- command=("patchelf", "--shrink-rpath", filename),
795
- stderr_filter=_filterPatchelfErrorOutput,
796
- absence_message=_patchelf_usage,
797
- )
796
+ executeToolChecked(
797
+ logger=postprocessing_logger,
798
+ command=("patchelf", "--shrink-rpath", filename),
799
+ stderr_filter=_filterPatchelfErrorOutput,
800
+ absence_message=_patchelf_usage,
801
+ )
798
802
 
799
- executeToolChecked(
800
- logger=postprocessing_logger,
801
- command=("termux-elf-cleaner", "--quiet", filename),
802
- absence_message=_termux_elf_cleaner_usage,
803
- optional=True,
804
- )
803
+ executeToolChecked(
804
+ logger=postprocessing_logger,
805
+ command=("termux-elf-cleaner", "--quiet", filename),
806
+ absence_message=_termux_elf_cleaner_usage,
807
+ optional=True,
808
+ )
805
809
 
806
810
 
807
811
  _nm_usage = """\