Nuitka-winsvc 2.7.7__cp313-cp313-win_amd64.whl → 2.7.12__cp313-cp313-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.
Files changed (29) hide show
  1. nuitka/OptionParsing.py +2 -2
  2. nuitka/Options.py +9 -0
  3. nuitka/Version.py +1 -1
  4. nuitka/build/include/nuitka/helpers.h +3 -0
  5. nuitka/build/static_src/CompiledAsyncgenType.c +1 -1
  6. nuitka/build/static_src/CompiledCodeHelpers.c +10 -9
  7. nuitka/build/static_src/OnefileBootstrap.c +19 -7
  8. nuitka/code_generation/templates/CodeTemplatesConstants.py +5 -5
  9. nuitka/importing/Importing.py +3 -0
  10. nuitka/importing/Recursion.py +1 -1
  11. nuitka/nodes/ImportNodes.py +45 -42
  12. nuitka/nodes/ModuleNodes.py +1 -0
  13. nuitka/plugins/PluginBase.py +3 -1
  14. nuitka/plugins/Plugins.py +15 -1
  15. nuitka/plugins/standard/AntiBloatPlugin.py +23 -7
  16. nuitka/plugins/standard/TransformersPlugin.py +48 -7
  17. nuitka/plugins/standard/standard.nuitka-package.config.yml +63 -23
  18. nuitka/tools/scanning/DisplayDistributions.py +14 -5
  19. nuitka/tree/ReformulationTryExceptStatements.py +1 -0
  20. nuitka/utils/PackageResources.py +20 -0
  21. nuitka/utils/Signing.py +1 -0
  22. {nuitka_winsvc-2.7.7.dist-info → nuitka_winsvc-2.7.12.dist-info}/METADATA +1 -1
  23. {nuitka_winsvc-2.7.7.dist-info → nuitka_winsvc-2.7.12.dist-info}/RECORD +29 -29
  24. {nuitka_winsvc-2.7.7.data → nuitka_winsvc-2.7.12.data}/scripts/nuitka-run.cmd +0 -0
  25. {nuitka_winsvc-2.7.7.data → nuitka_winsvc-2.7.12.data}/scripts/nuitka.cmd +0 -0
  26. {nuitka_winsvc-2.7.7.dist-info → nuitka_winsvc-2.7.12.dist-info}/WHEEL +0 -0
  27. {nuitka_winsvc-2.7.7.dist-info → nuitka_winsvc-2.7.12.dist-info}/entry_points.txt +0 -0
  28. {nuitka_winsvc-2.7.7.dist-info → nuitka_winsvc-2.7.12.dist-info}/licenses/LICENSE.txt +0 -0
  29. {nuitka_winsvc-2.7.7.dist-info → nuitka_winsvc-2.7.12.dist-info}/top_level.txt +0 -0
nuitka/OptionParsing.py CHANGED
@@ -1803,8 +1803,8 @@ Request an entitlement for access to a macOS protected resources, e.g.
1803
1803
  requests access to the microphone and provides an informative text for
1804
1804
  the user, why that is needed. Before the colon, is an OS identifier for
1805
1805
  an access right, then the informative text. Legal values can be found on
1806
- https://developer.apple.com/documentation/bundleresources/information_property_list/protected_resources and
1807
- the option can be specified multiple times. Default empty.""",
1806
+ https://developer.apple.com/documentation/bundleresources/information_property_list/protected_resources
1807
+ and the option can be specified multiple times. Default empty.""",
1808
1808
  )
1809
1809
 
1810
1810
 
nuitka/Options.py CHANGED
@@ -1061,6 +1061,15 @@ The Python without GIL is only experimentally supported by \
1061
1061
  and recommended only for use in Nuitka development and testing."""
1062
1062
  )
1063
1063
 
1064
+ if python_version == 0x3D4 and isWin32Windows() and isCPythonOfficialPackage():
1065
+ Tracing.general.sysexit(
1066
+ """\
1067
+ Due to a CPython bug of 3.13.4 precisely (not <3.13.4 and >3.14.5) \
1068
+ it's not possible to use Nuitka with this Python version, as it \
1069
+ broke the separation between GIL and no-GIL for the link \
1070
+ library. Please upgrade/downgrade to a supported micro version."""
1071
+ )
1072
+
1064
1073
  default_reference_mode = (
1065
1074
  "runtime" if shallMakeModule() or isStandaloneMode() else "original"
1066
1075
  )
nuitka/Version.py CHANGED
@@ -20,7 +20,7 @@
20
20
  """
21
21
 
22
22
  version_string = """\
23
- Nuitka V2.7.7
23
+ Nuitka V2.7.12
24
24
  Copyright (C) 2025 Kay Hayen."""
25
25
 
26
26
 
@@ -333,6 +333,9 @@ extern wchar_t const *getBinaryDirectoryWideChars(bool resolve_symlinks);
333
333
  // Get the binary directory, translated to ANSI/native path
334
334
  extern char const *getBinaryDirectoryHostEncoded(bool resolve_symlinks);
335
335
 
336
+ // Get the program directory as an object with symlinks resolved or not.
337
+ extern PyObject *getPythonProgramDirectoryObject(bool resolve_symlinks);
338
+
336
339
  // Get the containing directory as an object with symlinks resolved or not.
337
340
  extern PyObject *getContainingDirectoryObject(bool resolve_symlinks);
338
341
 
@@ -478,7 +478,7 @@ static PyObject *_Nuitka_Asyncgen_send(PyThreadState *tstate, struct Nuitka_Asyn
478
478
  case PYGEN_ERROR:
479
479
  return NULL;
480
480
  default:
481
- NUITKA_CANNOT_GET_HERE("invalid PYGEN_ result");
481
+ NUITKA_CANNOT_GET_HERE("invalid result");
482
482
  }
483
483
  }
484
484
 
@@ -1854,8 +1854,15 @@ PyObject *getDllFilenameObject(void) {
1854
1854
  }
1855
1855
  #endif
1856
1856
 
1857
+ PyObject *getPythonProgramDirectoryObject(bool resolve_symlinks) {
1858
+ #if defined(_NUITKA_EXE_MODE)
1859
+ return getBinaryDirectoryObject(resolve_symlinks);
1860
+ #else
1861
+ return getDllDirectoryObject();
1862
+ #endif
1863
+ }
1864
+
1857
1865
  PyObject *getContainingDirectoryObject(bool resolve_symlinks) {
1858
- #if _NUITKA_EXE_MODE
1859
1866
  #if defined(_NUITKA_ONEFILE_MODE)
1860
1867
  environment_char_t const *onefile_directory = getEnvironmentVariable("NUITKA_ONEFILE_DIRECTORY");
1861
1868
  if (onefile_directory != NULL) {
@@ -1864,14 +1871,8 @@ PyObject *getContainingDirectoryObject(bool resolve_symlinks) {
1864
1871
 
1865
1872
  return result;
1866
1873
  }
1867
-
1868
- return getBinaryDirectoryObject(resolve_symlinks);
1869
- #else
1870
- return getBinaryDirectoryObject(resolve_symlinks);
1871
- #endif
1872
- #else
1873
- return getDllDirectoryObject();
1874
1874
  #endif
1875
+ return getPythonProgramDirectoryObject(resolve_symlinks);
1875
1876
  }
1876
1877
 
1877
1878
  #if _NUITKA_STANDALONE_MODE
@@ -1968,7 +1969,7 @@ PyObject *MAKE_RELATIVE_PATH(PyObject *relative) {
1968
1969
  static PyObject *our_path_object = NULL;
1969
1970
 
1970
1971
  if (our_path_object == NULL) {
1971
- our_path_object = getContainingDirectoryObject(true);
1972
+ our_path_object = getPythonProgramDirectoryObject(true);
1972
1973
  }
1973
1974
 
1974
1975
  return JOIN_PATH2(our_path_object, relative);
@@ -1157,12 +1157,8 @@ int main(int argc, char **argv) {
1157
1157
 
1158
1158
  NUITKA_PRINT_TIMING("ONEFILE: Entered main().");
1159
1159
 
1160
- filename_char_t const *pattern = FILENAME_EMPTY_STR _NUITKA_ONEFILE_TEMP_SPEC;
1161
- bool bool_res = expandTemplatePathFilename(payload_path, pattern, sizeof(payload_path) / sizeof(filename_char_t));
1162
-
1163
- // _putws(payload_path);
1164
-
1165
1160
  #if _NUITKA_ONEFILE_DLL_MODE
1161
+ NUITKA_PRINT_TIMING("ONEFILE: Checking role of process.");
1166
1162
  environment_char_t const *process_role = getEnvironmentVariable("NUITKA_ONEFILE_PARENT");
1167
1163
 
1168
1164
  // Empty strings do not count.
@@ -1204,14 +1200,30 @@ int main(int argc, char **argv) {
1204
1200
  } else {
1205
1201
  process_role = NULL;
1206
1202
  }
1203
+
1204
+ // Do not inherit these from another onefile binary.
1205
+ if (process_role == NULL) {
1206
+ NUITKA_PRINT_TIMING("ONEFILE: Removing other onefile environment.");
1207
+
1208
+ unsetEnvironmentVariable("NUITKA_ONEFILE_PARENT");
1209
+ unsetEnvironmentVariable("NUITKA_ONEFILE_START");
1210
+ } else {
1211
+ NUITKA_PRINT_TIMING("ONEFILE: Decided we child environment.");
1212
+ }
1207
1213
  }
1208
1214
  #endif
1209
-
1210
1215
  #else
1216
+ // TODO: Only Windows has the solved so far, it's also the only platform we
1217
+ // use it on right now.
1211
1218
  environment_char_t const *process_role = NULL;
1212
1219
  #endif
1213
1220
 
1214
- // IF we are the bootstrasp binary, show the splash screen.
1221
+ filename_char_t const *pattern = FILENAME_EMPTY_STR _NUITKA_ONEFILE_TEMP_SPEC;
1222
+ bool bool_res = expandTemplatePathFilename(payload_path, pattern, sizeof(payload_path) / sizeof(filename_char_t));
1223
+
1224
+ // _putws(payload_path);
1225
+
1226
+ // If we are the onefile initial bootstrap binary, show the splash screen.
1215
1227
  #if defined(_NUITKA_ONEFILE_SPLASH_SCREEN) && _NUITKA_ONEFILE_COMPRESSION_BOOL == 1
1216
1228
  if (process_role == NULL) {
1217
1229
  initSplashScreen();
@@ -156,19 +156,19 @@ static void _createGlobalConstants(PyThreadState *tstate) {
156
156
 
157
157
  PyStructSequence_SET_ITEM(Nuitka_dunder_compiled_value, 3, Nuitka_String_FromString("%(nuitka_version_level)s"));
158
158
 
159
- PyObject *binary_directory = getContainingDirectoryObject(false);
159
+ PyObject *containing_directory = getContainingDirectoryObject(false);
160
160
  #if _NUITKA_STANDALONE_MODE
161
161
  #if !_NUITKA_ONEFILE_MODE
162
- binary_directory = STRIP_DIRNAME(binary_directory);
162
+ containing_directory = STRIP_DIRNAME(containing_directory);
163
163
  #endif
164
164
 
165
165
  #if _NUITKA_MACOS_BUNDLE_MODE
166
- binary_directory = STRIP_DIRNAME(binary_directory);
167
- binary_directory = STRIP_DIRNAME(binary_directory);
166
+ containing_directory = STRIP_DIRNAME(containing_directory);
167
+ containing_directory = STRIP_DIRNAME(containing_directory);
168
168
  #endif
169
169
  #endif
170
170
 
171
- PyStructSequence_SET_ITEM(Nuitka_dunder_compiled_value, 4, binary_directory);
171
+ PyStructSequence_SET_ITEM(Nuitka_dunder_compiled_value, 4, containing_directory);
172
172
 
173
173
  #if _NUITKA_STANDALONE_MODE
174
174
  PyObject *is_standalone_mode = Py_True;
@@ -135,6 +135,9 @@ def makeModuleUsageAttempt(
135
135
  ):
136
136
  assert source_ref is not None
137
137
 
138
+ # The looked for module usage attempt, cannot be a relative module name
139
+ assert module_name.getTopLevelPackageName() != "", source_ref
140
+
138
141
  return ModuleUsageAttempt(
139
142
  module_name=module_name,
140
143
  filename=filename,
@@ -103,7 +103,7 @@ def decideRecursion(
103
103
  ):
104
104
  package_part, _remainder = module_name.splitModuleBasename()
105
105
 
106
- if package_part is not None:
106
+ if package_part is not None and package_part.getTopLevelPackageName() != "":
107
107
  (
108
108
  _package_part,
109
109
  package_filename,
@@ -943,17 +943,18 @@ class ExpressionBuiltinImport(ChildrenExpressionBuiltinImportMixin, ExpressionBa
943
943
  module_kind=module_kind,
944
944
  )
945
945
 
946
- self.used_modules = makeParentModuleUsagesAttempts(
947
- makeModuleUsageAttempt(
948
- module_name=module_name_found,
949
- filename=module_filename,
950
- module_kind=module_kind,
951
- finding=self.finding,
952
- level=level_value,
953
- source_ref=self.source_ref,
954
- reason="import",
946
+ if module_name_found.getTopLevelPackageName() != "":
947
+ self.used_modules = makeParentModuleUsagesAttempts(
948
+ makeModuleUsageAttempt(
949
+ module_name=module_name_found,
950
+ filename=module_filename,
951
+ module_kind=module_kind,
952
+ finding=self.finding,
953
+ level=level_value,
954
+ source_ref=self.source_ref,
955
+ reason="import",
956
+ )
955
957
  )
956
- )
957
958
 
958
959
  if self.finding != "not-found":
959
960
  module_name = module_name_found
@@ -1066,40 +1067,42 @@ class ExpressionBuiltinImport(ChildrenExpressionBuiltinImportMixin, ExpressionBa
1066
1067
  parent_package = parent_package.getPackageName()
1067
1068
  level_value -= 1
1068
1069
 
1069
- if imported_module_name != "":
1070
- candidate_module_name = parent_package.getChildNamed(
1071
- imported_module_name
1072
- )
1073
- else:
1074
- candidate_module_name = parent_package
1075
-
1076
- if (
1077
- candidate_module_name in hard_modules_non_stdlib
1078
- or module_filename is None
1079
- or isStandardLibraryPath(module_filename)
1080
- ):
1081
- result = ExpressionImportModuleHard(
1082
- using_module_name=self.getParentModule().getFullName(),
1083
- module_name=candidate_module_name,
1084
- value_name=self._getImportedValueName(
1085
- candidate_module_name
1086
- ),
1087
- source_ref=self.source_ref,
1088
- )
1070
+ if parent_package is not None:
1071
+ if imported_module_name != "":
1072
+ candidate_module_name = parent_package.getChildNamed(
1073
+ imported_module_name
1074
+ )
1075
+ else:
1076
+ candidate_module_name = parent_package
1077
+
1078
+ if (
1079
+ candidate_module_name in hard_modules_non_stdlib
1080
+ or module_filename is None
1081
+ or isStandardLibraryPath(module_filename)
1082
+ ):
1083
+ result = ExpressionImportModuleHard(
1084
+ using_module_name=self.getParentModule().getFullName(),
1085
+ module_name=candidate_module_name,
1086
+ value_name=self._getImportedValueName(
1087
+ candidate_module_name
1088
+ ),
1089
+ source_ref=self.source_ref,
1090
+ )
1089
1091
 
1090
- return (
1091
- result,
1092
- "new_expression",
1093
- "Lowered import %s module '%s' to hard import."
1094
- % (
1095
- (
1096
- "hard import"
1097
- if candidate_module_name in hard_modules_non_stdlib
1098
- else "standard library"
1092
+ return (
1093
+ result,
1094
+ "new_expression",
1095
+ "Lowered import %s module '%s' to hard import."
1096
+ % (
1097
+ (
1098
+ "hard import"
1099
+ if candidate_module_name
1100
+ in hard_modules_non_stdlib
1101
+ else "standard library"
1102
+ ),
1103
+ candidate_module_name.asString(),
1099
1104
  ),
1100
- candidate_module_name.asString(),
1101
- ),
1102
- )
1105
+ )
1103
1106
 
1104
1107
  imported_module_name = resolveModuleName(imported_module_name)
1105
1108
 
@@ -49,6 +49,7 @@ class PythonModuleBase(NodeBase):
49
49
  def __init__(self, module_name, reason, source_ref):
50
50
  assert type(module_name) is ModuleName, module_name
51
51
  assert module_name != "", source_ref
52
+ assert module_name.getTopLevelPackageName() != "", module_name
52
53
 
53
54
  NodeBase.__init__(self, source_ref=source_ref)
54
55
 
@@ -1433,7 +1433,9 @@ except Exception as e:
1433
1433
  values=(("key", value),),
1434
1434
  ).key
1435
1435
 
1436
- def onFunctionBodyParsing(self, module_name, function_name, body):
1436
+ def onFunctionBodyParsing(
1437
+ self, module_name, function_qualname, function_name, body
1438
+ ):
1437
1439
  """Provide a different function body for the function of that module.
1438
1440
 
1439
1441
  Should return a boolean, indicating if any actual change was done.
nuitka/plugins/Plugins.py CHANGED
@@ -418,7 +418,15 @@ class Plugins(object):
418
418
  % (plugin.plugin_name, v, module.getFullName())
419
419
  )
420
420
 
421
- yield ModuleName(v)
421
+ v = ModuleName(v)
422
+
423
+ if v.getTopLevelPackageName() == "":
424
+ plugin.sysexit(
425
+ "Plugin '%s' returned an invalid relative module name, not %r (for module '%s')"
426
+ % (plugin.plugin_name, v, module.getFullName())
427
+ )
428
+
429
+ yield v
422
430
 
423
431
  seen = set()
424
432
 
@@ -1052,6 +1060,9 @@ class Plugins(object):
1052
1060
 
1053
1061
  @classmethod
1054
1062
  def onModuleUsageLookAhead(cls, module_name, module_filename, module_kind):
1063
+ if module_name.getTopLevelPackageName() == "":
1064
+ return
1065
+
1055
1066
  if module_name in cls.module_usage_looked_ahead_cache:
1056
1067
  return
1057
1068
 
@@ -1405,11 +1416,14 @@ class Plugins(object):
1405
1416
  def onFunctionBodyParsing(cls, provider, function_name, body):
1406
1417
  module_name = provider.getParentModule().getFullName()
1407
1418
 
1419
+ function_qualname = provider.getChildQualname(function_name)
1420
+
1408
1421
  for plugin in getActivePlugins():
1409
1422
  # TODO: Could record what functions got modified by what plugin
1410
1423
  # and in what way checking the return value
1411
1424
  plugin.onFunctionBodyParsing(
1412
1425
  module_name=module_name,
1426
+ function_qualname=function_qualname,
1413
1427
  function_name=function_name,
1414
1428
  body=body,
1415
1429
  )
@@ -574,17 +574,29 @@ Error, cannot exec module '%s', context code '%s' due to: %s"""
574
574
  module_name,
575
575
  config_prefix,
576
576
  anti_bloat_config,
577
+ function_qualname,
577
578
  function_name,
578
579
  body,
579
580
  ):
580
- replace_code = anti_bloat_config.get(config_prefix + "change_function", {}).get(
581
- function_name
582
- )
581
+ # Can be "change_function" or "global_change_function"
582
+ config_item_name = config_prefix + "change_function"
583
+
584
+ # TODO: Ought to always use "function_qualname", but for now we cannot
585
+ # make the switch easily for "change_function" as it we would have to
586
+ # correct all their uses.
587
+ if config_prefix == "":
588
+ replace_code = anti_bloat_config.get(config_item_name, {}).get(
589
+ function_name
590
+ )
591
+ else:
592
+ replace_code = anti_bloat_config.get(config_item_name, {}).get(
593
+ function_qualname
594
+ )
583
595
 
584
596
  if replace_code == "un-callable":
585
597
  replace_code = """'raise RuntimeError("Must not call %s.%s")'""" % (
586
598
  module_name,
587
- function_name,
599
+ function_qualname,
588
600
  )
589
601
 
590
602
  if replace_code is None:
@@ -594,8 +606,8 @@ Error, cannot exec module '%s', context code '%s' due to: %s"""
594
606
  config_module_name=config_module_name,
595
607
  module_name=module_name,
596
608
  expression=replace_code,
597
- config_name="module '%s' config '%schange_function' of '%s'"
598
- % (module_name, config_prefix, function_name),
609
+ config_name="module '%s' config '%s' of '%s'"
610
+ % (module_name, config_item_name, function_name),
599
611
  extra_context=self._getContextCode(
600
612
  module_name=module_name, anti_bloat_config=anti_bloat_config
601
613
  ),
@@ -624,7 +636,9 @@ Error, cannot exec module '%s', context code '%s' due to: %s"""
624
636
 
625
637
  return True
626
638
 
627
- def onFunctionBodyParsing(self, module_name, function_name, body):
639
+ def onFunctionBodyParsing(
640
+ self, module_name, function_qualname, function_name, body
641
+ ):
628
642
  result = False
629
643
 
630
644
  config_module_name = module_name
@@ -643,6 +657,7 @@ Error, cannot exec module '%s', context code '%s' due to: %s"""
643
657
  module_name=module_name,
644
658
  anti_bloat_config=anti_bloat_config,
645
659
  config_prefix="",
660
+ function_qualname=function_qualname,
646
661
  function_name=function_name,
647
662
  body=body,
648
663
  ):
@@ -653,6 +668,7 @@ Error, cannot exec module '%s', context code '%s' due to: %s"""
653
668
  module_name=module_name,
654
669
  anti_bloat_config=anti_bloat_config,
655
670
  config_prefix="global_",
671
+ function_qualname=function_qualname,
656
672
  function_name=function_name,
657
673
  body=body,
658
674
  ):
@@ -5,6 +5,8 @@
5
5
 
6
6
  """
7
7
 
8
+ import os
9
+
8
10
  from nuitka.plugins.PluginBase import NuitkaPluginBase
9
11
 
10
12
 
@@ -42,13 +44,24 @@ class NuitkaPluginTransformers(NuitkaPluginBase):
42
44
  if "_import_structure = {" in source_code:
43
45
  self._import_structure_modules.add(module_name)
44
46
 
45
- def _getImportStructureDefinition(self, module_name, source_filename):
47
+ def _getImportStructureDefinition(self, module_name, source_filename, prefix):
46
48
  # TODO: Is caching is not needed, because it does that on
47
49
  # its own?
50
+
51
+ if prefix is None:
52
+ value = (
53
+ "{tuple(key): value for (key, value) in define_import_structure(%r).items()}"
54
+ % source_filename
55
+ )
56
+ else:
57
+ value = (
58
+ "{tuple(key): value for (key, value) in define_import_structure(%r, prefix=%r).items()}"
59
+ % (source_filename, prefix)
60
+ )
61
+
48
62
  import_structure_value = self.queryRuntimeInformationSingle(
49
63
  setup_codes="from transformers.utils.import_utils import define_import_structure",
50
- value="{tuple(key): value for (key, value) in define_import_structure(%r).items()}"
51
- % source_filename,
64
+ value=value,
52
65
  info_name="transformers_%s_import_structure" % module_name.asString(),
53
66
  )
54
67
 
@@ -77,16 +90,44 @@ class NuitkaPluginTransformers(NuitkaPluginBase):
77
90
  yield sub_module_name
78
91
 
79
92
  if module_name in self._define_structure_modules:
80
- for sub_module_name in self._define_structure_modules[module_name][
81
- frozenset()
82
- ].keys():
93
+ for sub_module_name in (
94
+ self._define_structure_modules[module_name].get(frozenset(), {}).keys()
95
+ ):
83
96
  yield module_name.getChildNamed(sub_module_name)
84
97
 
85
98
  def onModuleSourceCode(self, module_name, source_filename, source_code):
86
99
  if module_name.hasNamespace("transformers"):
100
+ if (
101
+ 'define_import_structure(Path(__file__).parent / "models", prefix="models")'
102
+ in source_code
103
+ ):
104
+ import_structure_value = self._getImportStructureDefinition(
105
+ module_name=module_name,
106
+ source_filename=os.path.join(
107
+ os.path.dirname(source_filename), "models"
108
+ ),
109
+ prefix="models",
110
+ )
111
+
112
+ # Frozenset does not transport as such, so we converted
113
+ # them to tuples and now back for compatibility.
114
+ import_structure_value = dict(
115
+ (frozenset(key), value)
116
+ for key, value in import_structure_value.items()
117
+ )
118
+
119
+ source_code = source_code.replace(
120
+ 'define_import_structure(Path(__file__).parent / "models", prefix="models")',
121
+ repr(import_structure_value),
122
+ )
123
+
124
+ self._define_structure_modules[module_name] = import_structure_value
125
+
87
126
  if "define_import_structure(_file)" in source_code:
88
127
  import_structure_value = self._getImportStructureDefinition(
89
- module_name=module_name, source_filename=source_filename
128
+ module_name=module_name,
129
+ source_filename=source_filename,
130
+ prefix=None,
90
131
  )
91
132
 
92
133
  # Frozenset does not transport as such, so we converted
@@ -728,7 +728,7 @@
728
728
  - patterns:
729
729
  - 'cacert.pem'
730
730
 
731
- - module-name: 'certifi.core' # checksum: 40d902d3
731
+ - module-name: 'certifi.core' # checksum: 2eb9c89a
732
732
  anti-bloat:
733
733
  - description: 'avoid using importlib.resources without need'
734
734
  replacements_plain:
@@ -736,6 +736,7 @@
736
736
  # now ones check versions first.
737
737
  'from importlib.resources import path as get_path, read_text': 'raise ImportError'
738
738
  'sys.version_info': '(0,)'
739
+ when: 'version("certifi") < (2025,)'
739
740
 
740
741
  - module-name: 'cffi.api' # checksum: 4743eaca
741
742
  anti-bloat:
@@ -931,13 +932,13 @@
931
932
  # Not necessary on Windows
932
933
  when: 'not win32'
933
934
 
934
- - module-name: 'cv2' # checksum: 3a4aa553
935
+ - module-name: 'cv2' # checksum: 743289ea
935
936
  variables:
936
937
  setup_code:
937
938
  - 'import cv2'
938
939
  declarations:
939
940
  'cv2_extra_sub_modules': 'tuple(m for m in cv2.__collect_extra_submodules(False) if m != ".dylibs")'
940
- when: 'not is_conda_package("cv2")'
941
+ when: 'not is_conda_package("cv2") and not version(get_dist_name("cv2")) < (4,6)'
941
942
  data-files:
942
943
  - dirs:
943
944
  - 'qt/fonts'
@@ -980,7 +981,7 @@
980
981
  '__collect_extra_submodules(DEBUG)': 'repr(get_variable("cv2_extra_sub_modules"))'
981
982
  change_function:
982
983
  '__collect_extra_submodules': 'un-callable'
983
- when: 'standalone and not is_conda_package("cv2")'
984
+ when: 'standalone and not is_conda_package("cv2") and not version(get_dist_name("cv2")) < (4,6)'
984
985
 
985
986
  implicit-imports:
986
987
  - depends:
@@ -989,7 +990,7 @@
989
990
  - 'numpy.core'
990
991
  - depends:
991
992
  - '["cv2.%s" % m for m in get_variable("cv2_extra_sub_modules")]'
992
- when: 'not is_conda_package("cv2")'
993
+ when: 'not is_conda_package("cv2") and not version(get_dist_name("cv2")) < (4,6)'
993
994
  - pre-import-code:
994
995
  - |
995
996
  import os
@@ -998,8 +999,8 @@
998
999
  when: 'linux and standalone'
999
1000
  options:
1000
1001
  checks:
1001
- - description: 'OpenCV2 is only supported with 4.6 or later'
1002
- support_info: 'error'
1002
+ - description: 'OpenCV2 is best supported with 4.6 or later (earlier versions may lack support for implicit import of cv2 extra submodules)'
1003
+ support_info: 'warning'
1003
1004
  when: 'version(get_dist_name("cv2")) < (4,6)'
1004
1005
 
1005
1006
  - module-name: 'cvxpy.utilities.key_utils' # checksum: fc2bb323
@@ -2281,7 +2282,13 @@
2281
2282
  - include-metadata:
2282
2283
  - 'jupyter_client'
2283
2284
 
2284
- - module-name: 'keras' # checksum: 292d6ceb
2285
+ - module-name: 'keras' # checksum: ae48c1a8
2286
+ anti-bloat:
2287
+ - description: 'remove IPython reference'
2288
+ no-auto-follow:
2289
+ 'IPython': 'ignore'
2290
+ when: 'not use_ipython'
2291
+
2285
2292
  import-hacks:
2286
2293
  # This package adds another directory to the search path of itself,
2287
2294
  # which we will not find packages in unless added.
@@ -2301,13 +2308,6 @@
2301
2308
  'from keras.src.testing_infra import test_utils': 'test_utils = None'
2302
2309
  when: 'not use_unittest'
2303
2310
 
2304
- - module-name: 'keras.src.utils.vis_utils' # checksum: 7d07a2d1
2305
- anti-bloat:
2306
- - description: 'remove IPython reference'
2307
- no-auto-follow:
2308
- 'IPython': 'ignore'
2309
- when: 'not use_ipython'
2310
-
2311
2311
  - module-name: 'keras.utils.vis_utils' # checksum: 6cba68c8
2312
2312
  anti-bloat:
2313
2313
  - description: 'remove IPython reference'
@@ -4658,7 +4658,7 @@
4658
4658
  - dirs:
4659
4659
  - '.'
4660
4660
 
4661
- - module-name: 'pygame' # checksum: 64efeec5
4661
+ - module-name: 'pygame' # checksum: db7d5ddb
4662
4662
  data-files:
4663
4663
  - patterns:
4664
4664
  - 'freesansbold.ttf'
@@ -4668,6 +4668,11 @@
4668
4668
  - patterns:
4669
4669
  - 'pygame_icon.bmp'
4670
4670
  when: 'not macos'
4671
+ dlls:
4672
+ - from_filenames:
4673
+ relative_path: '.'
4674
+ prefixes:
4675
+ - ''
4671
4676
 
4672
4677
  anti-bloat:
4673
4678
  - no-auto-follow:
@@ -5419,13 +5424,19 @@
5419
5424
  'kernel_name = get_ipython().__class__.__name__': 'raise NameError'
5420
5425
  when: 'not use_ipython'
5421
5426
 
5422
- - module-name: 'reportlab' # checksum: 4aa9542b
5427
+ - module-name: 'reportlab' # checksum: 5844c802
5423
5428
  anti-bloat:
5424
5429
  - description: 'remove reportlab test code and unittest reference'
5425
5430
  global_change_function:
5426
5431
  'test': 'un-callable'
5432
+ '_test': 'un-callable'
5427
5433
  when: 'not use_unittest'
5428
5434
 
5435
+ - module-name: 'reportlab.graphics.barcode.widgets' # checksum: 2c842857
5436
+ implicit-imports:
5437
+ - depends:
5438
+ - 'reportlab.graphics.barcode.*'
5439
+
5429
5440
  - module-name: 'reportlab.rl_config' # checksum: 8e035d91
5430
5441
  implicit-imports:
5431
5442
  - depends:
@@ -5553,7 +5564,7 @@
5553
5564
  - depends:
5554
5565
  - 'scapy.layers.*'
5555
5566
 
5556
- - module-name: 'scipy' # checksum: 831d0852
5567
+ - module-name: 'scipy' # checksum: 9c031415
5557
5568
  data-files:
5558
5569
  - patterns:
5559
5570
  - 'stats/_sobol_direction_numbers.npz' # for scipy.stats._sobol._initialize_direction_numbers
@@ -5580,6 +5591,7 @@
5580
5591
  'sparse': 'ignore'
5581
5592
  'ndonnx': 'ignore'
5582
5593
  'yaml': 'ignore'
5594
+ 'pytest': 'ignore'
5583
5595
  bloat-mode-overrides:
5584
5596
  'pydoc': 'allow'
5585
5597
 
@@ -5664,7 +5676,7 @@
5664
5676
  - 'scipy.linalg.cython_blas'
5665
5677
  - 'scipy.linalg.cython_lapack'
5666
5678
 
5667
- - module-name: 'scipy.optimize._cobyla_py' # checksum: 3ea0b5b1
5679
+ - module-name: 'scipy.optimize._cobyla_py' # checksum: 37a1223f
5668
5680
  implicit-imports:
5669
5681
  - post-import-code:
5670
5682
  - |
@@ -5683,12 +5695,18 @@
5683
5695
  kwargs["callback"] = callback_wrapper
5684
5696
  return orig_minimize(*args, **kwargs)
5685
5697
  scipy.optimize._cobyla.minimize=nuitka_compatible_minimize
5698
+ when: 'version("scipy") < (1,16)'
5686
5699
 
5687
5700
  - module-name: 'scipy.optimize._shgo_lib.triangulation' # checksum: 7547ad25
5688
5701
  anti-bloat:
5689
5702
  - no-auto-follow:
5690
5703
  'matplotlib': 'plotting will lack matplotlib'
5691
5704
 
5705
+ - module-name: 'scipy.sparse._lil' # checksum: 41e6ce11
5706
+ implicit-imports:
5707
+ - depends:
5708
+ - 'scipy._cyutility'
5709
+
5692
5710
  - module-name: 'scipy.sparse.csgraph' # checksum: 8997608e
5693
5711
  implicit-imports:
5694
5712
  - depends:
@@ -6379,6 +6397,11 @@
6379
6397
  - depends:
6380
6398
  - 'sklearn.externals.joblib'
6381
6399
 
6400
+ - module-name: 'sklearn.externals.array_api_compat.numpy' # checksum: 441c388
6401
+ implicit-imports:
6402
+ - depends:
6403
+ - 'sklearn.externals.array_api_compat.numpy.fft'
6404
+
6382
6405
  - module-name: 'sklearn.externals.joblib' # checksum: d27fe3d7
6383
6406
  implicit-imports:
6384
6407
  - depends:
@@ -6497,10 +6520,10 @@
6497
6520
  - depends:
6498
6521
  - 'sklearn.neighbors._quad_tree'
6499
6522
 
6500
- - module-name: 'sklearn.utils' # checksum: cecf5599
6523
+ - module-name: 'sklearn.utils' # checksum: b6c286fd
6501
6524
  data-files:
6502
6525
  - patterns:
6503
- - '*.css'
6526
+ - '**/*.css'
6504
6527
  implicit-imports:
6505
6528
  - depends:
6506
6529
  - 'sklearn.utils.arrayfuncs'
@@ -8399,7 +8422,7 @@
8399
8422
  - patterns:
8400
8423
  - '*.css'
8401
8424
 
8402
- - module-name: 'transformers' # checksum: d013b95f
8425
+ - module-name: 'transformers' # checksum: deea1e9e
8403
8426
  data-files:
8404
8427
  - include-metadata:
8405
8428
  - 'accelerate'
@@ -8423,6 +8446,7 @@
8423
8446
  - 'pygments'
8424
8447
  - 'soundfile'
8425
8448
  - 'tqdm'
8449
+ - 'rich'
8426
8450
 
8427
8451
  anti-bloat:
8428
8452
  - description: 'remove IPython reference'
@@ -8430,6 +8454,11 @@
8430
8454
  'IPython': 'ignore'
8431
8455
  when: 'not use_ipython'
8432
8456
 
8457
+ - description: 'remove setuptools (via triton) reference'
8458
+ no-auto-follow:
8459
+ 'triton': 'ignore'
8460
+ when: 'not use_setuptools'
8461
+
8433
8462
  - module-name: 'transformers.integrations' # checksum: ccb3fd3
8434
8463
  anti-bloat:
8435
8464
  - description: 'remove IPython reference'
@@ -8858,18 +8887,29 @@
8858
8887
  - depends:
8859
8888
  - 'vibora.router.parser'
8860
8889
 
8890
+ - module-name: 'vllm' # checksum: 764db455
8891
+ data-files:
8892
+ - include-metadata:
8893
+ - 'gguf'
8894
+
8861
8895
  - module-name: 'vosk' # checksum: 77da6060
8862
8896
  dlls:
8863
8897
  - from_filenames:
8864
8898
  prefixes:
8865
8899
  - 'libvosk'
8866
8900
 
8867
- - module-name: 'vtk' # checksum: e1e59251
8901
+ - module-name: 'vtk' # checksum: 4efecff3
8902
+ implicit-imports:
8903
+ - depends:
8904
+ - 'vtkmodules'
8905
+ when: 'version("vtk") < (9,)'
8906
+
8868
8907
  import-hacks:
8869
8908
  # This module aliases itself to another package, for which we will
8870
8909
  # not find packages in unless added.
8871
8910
  - package-paths:
8872
8911
  - 'vtkmodules'
8912
+ when: 'version("vtk") >= (9,)'
8873
8913
 
8874
8914
  - module-name: 'vtkmodules' # checksum: 8db0fa0f
8875
8915
  implicit-imports:
@@ -3,6 +3,8 @@
3
3
 
4
4
  """ Display the Distributions installed. """
5
5
 
6
+ from nuitka.containers.OrderedSets import OrderedSet
7
+ from nuitka.Tracing import my_print
6
8
  from nuitka.utils.Distributions import (
7
9
  getDistributionInstallerName,
8
10
  getDistributionName,
@@ -12,16 +14,23 @@ from nuitka.utils.Distributions import (
12
14
 
13
15
 
14
16
  def displayDistributions():
17
+ output = OrderedSet()
18
+
15
19
  for distributions in getDistributions().values():
16
20
  for distribution in distributions:
17
21
  distribution_name = getDistributionName(distribution)
18
- # print(distribution_name, distribution)
19
- print(
20
- distribution_name,
21
- getDistributionVersion(distribution),
22
- getDistributionInstallerName(distribution_name=distribution_name),
22
+
23
+ output.add(
24
+ (
25
+ distribution_name,
26
+ getDistributionVersion(distribution),
27
+ getDistributionInstallerName(distribution_name=distribution_name),
28
+ )
23
29
  )
24
30
 
31
+ for item in sorted(output):
32
+ my_print(*item)
33
+
25
34
 
26
35
  # Part of "Nuitka", an optimizing Python compiler that is compatible and
27
36
  # integrates with CPython, but also works on its own.
@@ -366,6 +366,7 @@ def buildTryExceptionNode(provider, node, source_ref, is_star_try=False):
366
366
  ),
367
367
  )
368
368
 
369
+ # spell-checker: ignore orelse
369
370
  no_raise = buildStatementsNode(
370
371
  provider=provider, nodes=node.orelse, source_ref=source_ref
371
372
  )
@@ -7,6 +7,7 @@ import os
7
7
  import pkgutil
8
8
 
9
9
  from nuitka.importing.Importing import locateModule
10
+ from nuitka.PythonVersions import python_version
10
11
 
11
12
  from .FileOperations import getFileContents
12
13
 
@@ -25,6 +26,25 @@ def getPackageData(package_name, resource):
25
26
  if os.path.exists(resource_filename):
26
27
  return getFileContents(resource_filename, mode="rb")
27
28
 
29
+ # Try importlib.resources next for a more standard approach.
30
+ try:
31
+ if python_version >= 0x370:
32
+ import importlib.resources as importlib_resources
33
+
34
+ return importlib_resources.read_binary(package_name.asString(), resource)
35
+ elif python_version >= 0x350:
36
+ # Use backport or older importlib.resources
37
+ import importlib.resources as importlib_resources
38
+
39
+ with importlib_resources.open_binary(
40
+ package_name.asString(), resource
41
+ ) as fp:
42
+ return fp.read()
43
+ except (ImportError, FileNotFoundError, OSError, TypeError):
44
+ pass
45
+
46
+ # Fallback to pkgutil if all else fails, this however may import
47
+ # the package, which is not a good idea at all.
28
48
  return pkgutil.get_data(package_name.asString(), resource)
29
49
 
30
50
 
nuitka/utils/Signing.py CHANGED
@@ -26,6 +26,7 @@ def _filterCodesignErrorOutput(stderr):
26
26
  for line in stderr.splitlines()
27
27
  if line
28
28
  if b"replacing existing signature" not in line
29
+ if b"unable to build chain to self-signed root" not in line
29
30
  )
30
31
 
31
32
  if b"errSecInternalComponent" in stderr:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Nuitka-winsvc
3
- Version: 2.7.7
3
+ Version: 2.7.12
4
4
  Summary: Nuitka but support compile as Windows service
5
5
  Home-page: https://github.com/tabris17/Nuitka-winsvc
6
6
  Author: tabris17
@@ -7,8 +7,8 @@ nuitka/Errors.py,sha256=g_mfKCTdmtliQAERx7ip9mgYLvum-_lxv7_0XQjKwlY,2677
7
7
  nuitka/HardImportRegistry.py,sha256=f7YXb3pO8PyaNhKZViM0nJi5_2Ffu2ussvwQgqFxfxU,12278
8
8
  nuitka/MainControl.py,sha256=mPEoRkFd62vNco_goCX1rXwkiycuTWq-Uc_q858oxZE,40168
9
9
  nuitka/ModuleRegistry.py,sha256=Khyu3TwkD8OfdMMgeBswKUZE4U1orSMQ5X9wGjuHFaA,10063
10
- nuitka/OptionParsing.py,sha256=wlTN-HBr8sXGY3nSrt54Mn3fRL95cwiTYHzAQUah-pI,71541
11
- nuitka/Options.py,sha256=vIcxx4cyGRb03cPlbxS_1MfMrnGexYUvH6XHcFC3uo4,91864
10
+ nuitka/OptionParsing.py,sha256=vwK1xl8tRuG1zdMCpS3OOH8h3b8fCyKzqqk2IbZ6Ub0,71541
11
+ nuitka/Options.py,sha256=yXUf8yalggQaYqqriSYli3xPh-YhX6fBZvs0-6Aiqt8,92270
12
12
  nuitka/OutputDirectories.py,sha256=u_qu3BpyiMn9FWwFjHO2s9l25j1_MrhNYHSG7eIfnhs,5993
13
13
  nuitka/PostProcessing.py,sha256=FGqIPeojj0RduQkfJ-4Udnxj7LBOfDr2lbTurCjsDbE,18144
14
14
  nuitka/Progress.py,sha256=Vyyb5AEmDePby1TFfzUkuiUC1bgMz2Rm6Z-q8WvVn_Q,7279
@@ -20,7 +20,7 @@ nuitka/SourceCodeReferences.py,sha256=r73Rc0FeNNFTZPJBs4hDlNIgV60kzGxMsrXh2lkf0E
20
20
  nuitka/Tracing.py,sha256=c0DCcwYmSmzzSapbZN5u_A1nIBtiu1_r6JwiLxvgC8o,16305
21
21
  nuitka/TreeXML.py,sha256=Sz4s7F3ECIO06xJnE6-DUrqvl0wC7gPjKDemfA3zFcA,3683
22
22
  nuitka/Variables.py,sha256=LzwDNJz2GMgDqryPMg5HnBP9iAnMX2czsLiw2qbq13w,15409
23
- nuitka/Version.py,sha256=ZQpqDfnqNb4O0u9aSt5k3DI2AIYLH-Po1LrtwZQzKTQ,2466
23
+ nuitka/Version.py,sha256=MakuzWwfBsjJY6UOkBLwoQqfTNvwXrp7t5ilzOyy5Xg,2467
24
24
  nuitka/__init__.py,sha256=w40IeNhLEN-0WIEfrNSgBpliGxeptuL3cNld1sVGtos,865
25
25
  nuitka/__main__.py,sha256=dgzbvwhEIc8L95I9nkvIl-DXwcaYtYHB5QoS4r9IJQs,7927
26
26
  nuitka/__past__.py,sha256=b2i8U43cUKPvqJs_oLehE92W-1q4XdAphnxs74en40g,5739
@@ -59,7 +59,7 @@ nuitka/build/include/nuitka/exceptions.h,sha256=9p0yrMrvxm4z4S3EsHy4-ukiNqGe07WP
59
59
  nuitka/build/include/nuitka/filesystem_paths.h,sha256=gPLno-RzFXFDHq8QHmddhu4Ug1lqBVy--ZSVyGZIg8g,4423
60
60
  nuitka/build/include/nuitka/freelists.h,sha256=Ak12MU54WBriSm4hUlLtu6BNuy0uD5AS8UuuYLlNVFo,6774
61
61
  nuitka/build/include/nuitka/hedley.h,sha256=HHRA7HwPkxD3WBynZVSXxTc3HKaDK6f35srMJC894fs,86326
62
- nuitka/build/include/nuitka/helpers.h,sha256=rPzgCfshIahYWo6_HzuPSvNd4QZ6ztZTYGYN9zcPBWo,16811
62
+ nuitka/build/include/nuitka/helpers.h,sha256=z-moyPnra2bxsIWYk2GEXyi6MnRi3FiAXSarE-ywtac,16958
63
63
  nuitka/build/include/nuitka/importing.h,sha256=qb1MWfKBHUOmbFNpbZHkSeqIz7_9yIgMjw2uD6yEJFk,6268
64
64
  nuitka/build/include/nuitka/incbin.h,sha256=TRcdv5KUprIKXyKr4SBYFvOVFdIKWm_dyfdlEYxqJMM,12979
65
65
  nuitka/build/include/nuitka/jit_sources.h,sha256=O9U3tlpPo0cL41Cl7lwAafJHcyqUzXRF1d8IH550G30,1086
@@ -430,9 +430,9 @@ nuitka/build/inline_copy/zstd/decompress/zstd_decompress.c,sha256=cucjOEFkR8einU
430
430
  nuitka/build/inline_copy/zstd/decompress/zstd_decompress_block.c,sha256=GTPNi7v2muQAWd4LqS5-qyvu6n8qj73J59y6CtxwOVM,66784
431
431
  nuitka/build/inline_copy/zstd/decompress/zstd_decompress_block.h,sha256=Tsd32XLgbI9ZHSqpEKmX2qLq83lLm8HnYQz6mjaClxg,2253
432
432
  nuitka/build/inline_copy/zstd/decompress/zstd_decompress_internal.h,sha256=2Dw1AaKzodgE564IrcIIn4C8w_CE59iKLA4fUSuslBg,7906
433
- nuitka/build/static_src/CompiledAsyncgenType.c,sha256=2meCQveSxyxvZcb3HXW0hWtPzs8EtIqC4yCoPcFgSPc,84366
433
+ nuitka/build/static_src/CompiledAsyncgenType.c,sha256=cyUlPXQkMNsDatt999zFiw9Kvr750uYOciAq3BKcSiw,84359
434
434
  nuitka/build/static_src/CompiledCellType.c,sha256=libn4b32jg-gLMKQCqAO6RH24MrGe2j-GCQAOJo8994,9257
435
- nuitka/build/static_src/CompiledCodeHelpers.c,sha256=nDivaFYu0-qZuxfdDKv4MM45CLJicINWlih75F-GuJ8,60325
435
+ nuitka/build/static_src/CompiledCodeHelpers.c,sha256=hEqL1dK-aO_Bj9OzBwFp_dVrE6dbdVW8dxwksBAfVWo,60407
436
436
  nuitka/build/static_src/CompiledCoroutineType.c,sha256=qJxnEdyAnNJPwZL6aj9Nl_mhBA5RO7rtjRgyt-j-cus,72588
437
437
  nuitka/build/static_src/CompiledFrameType.c,sha256=9nN4CIrD0mn5zbqkicp4IgAKVOAxo_9ORsw6qamCQ2U,45403
438
438
  nuitka/build/static_src/CompiledFunctionType.c,sha256=nT01KEl-CbJ7Wr3wbj-MMZWBHczSWoC0YT8_C6DTXz0,116474
@@ -533,7 +533,7 @@ nuitka/build/static_src/MetaPathBasedLoader.c,sha256=VHyBDQjvGUBn5w7iPMrEq8HTyPW
533
533
  nuitka/build/static_src/MetaPathBasedLoaderImportlibMetadataDistribution.c,sha256=H8P5iN-Xr1On_FjQ0oBUCQ32lQf395jw5L_LP3Y36Xc,5161
534
534
  nuitka/build/static_src/MetaPathBasedLoaderResourceReader.c,sha256=x2zz8SDCPJQ7jQFkhx4GWoJNWJyQ5MunWVwnzpsJNjg,6651
535
535
  nuitka/build/static_src/MetaPathBasedLoaderResourceReaderFiles.c,sha256=EdPheur4St2bMeVBt1iBR-VcPEXuzPNSICLo09DmL2U,27526
536
- nuitka/build/static_src/OnefileBootstrap.c,sha256=490sbkr3u70Vw5ze4_PiV90lU3vJ_-nSz9WmU_v9QZ0,44526
536
+ nuitka/build/static_src/OnefileBootstrap.c,sha256=uAI4xW1J5lhWh2MmzmVwCpcAP1hTawcPPGukQ0H0km0,45118
537
537
  nuitka/build/static_src/OnefileSplashScreen.cpp,sha256=x4w0lF7-cnTADSNB2VAq7YQkvWZU3hJ77jORdToDOhY,9138
538
538
  nuitka/code_generation/AsyncgenCodes.py,sha256=CA6kkvCpLm7u4I2caP_4oFd44tm4lEBui53Ql5xppVE,6394
539
539
  nuitka/code_generation/AttributeCodes.py,sha256=KQfXVaQrUEhRn_BztJMWBJKknGiur4SSzaPSLlElA5I,10948
@@ -614,7 +614,7 @@ nuitka/code_generation/c_types/CTypePyObjectPointers.py,sha256=_dxiuwJqfyvOyHz8G
614
614
  nuitka/code_generation/c_types/CTypeVoids.py,sha256=8aIgxwPCLV3Eggyg5JvYefVc6DsvsQskB8Xp4-D7s0Q,2886
615
615
  nuitka/code_generation/c_types/__init__.py,sha256=w40IeNhLEN-0WIEfrNSgBpliGxeptuL3cNld1sVGtos,865
616
616
  nuitka/code_generation/templates/CodeTemplatesAsyncgens.py,sha256=qkdWRQeAwNwxR273k3rb0tKybNPR2hrPgzciFsgDXLc,2944
617
- nuitka/code_generation/templates/CodeTemplatesConstants.py,sha256=TB4t-YhHLrM7OfnEuMESBMI66cZg4VwAQ2KiNqWaDm8,10180
617
+ nuitka/code_generation/templates/CodeTemplatesConstants.py,sha256=AWV-HHmNmKNZZb9jh6Y_l5jp8MceV4K5LBiLulMqm_E,10212
618
618
  nuitka/code_generation/templates/CodeTemplatesCoroutines.py,sha256=pWXGbPyDjmjTzCzoY5B_fYwlR_vqADQHux4wn1YrYrw,3036
619
619
  nuitka/code_generation/templates/CodeTemplatesExceptions.py,sha256=xHJ_zlC3ZKMvP-uWjSC0DcmGXsN1LMqmZVWQECAaAaI,2438
620
620
  nuitka/code_generation/templates/CodeTemplatesFrames.py,sha256=y6ORXB4FvyGZFycbPdmB7uXUwzU7dymLpbNvIyuVLC4,6967
@@ -686,9 +686,9 @@ nuitka/freezer/__init__.py,sha256=w40IeNhLEN-0WIEfrNSgBpliGxeptuL3cNld1sVGtos,86
686
686
  nuitka/importing/IgnoreListing.py,sha256=sQkK9Jt7OO3iiBZRBojhcMkF_kH_ysPRreOth3KxXVQ,11040
687
687
  nuitka/importing/ImportCache.py,sha256=EWM8Q3Giu9XIm5xM8Y_9yWHznMSS1yhAQVPRyShfg1c,2989
688
688
  nuitka/importing/ImportResolving.py,sha256=KK3NzcQi6yODgPm5zYI7ZC4-WKA8eDN-IG1-R6a5HkU,7775
689
- nuitka/importing/Importing.py,sha256=LVVzOXBo38P7odhzyIhhEuE7Ofjc5N41f7CBKHKZ4rs,37650
689
+ nuitka/importing/Importing.py,sha256=J3jVEjQrfTmjnvgqzYNH1UK4uHvy3keN1QSQ8r3YPXY,37793
690
690
  nuitka/importing/PreloadedPackages.py,sha256=_4bbui9_sUrPhiRtPYKlYt6Jxda-WD5GU18k1rUTzDg,4869
691
- nuitka/importing/Recursion.py,sha256=K6H0AXRBgBRLvcKB1v-gHUfGO2Oz86OSnqnEXxA32po,20342
691
+ nuitka/importing/Recursion.py,sha256=yt63-sZy6bHuE9knt2zR1yBaB6zq0KMX9x2Xl91W6dI,20390
692
692
  nuitka/importing/StandardLibrary.py,sha256=3q0IiHUmRYg0TamzInMsSG66KbD3b_uycT8otbYd5U8,13002
693
693
  nuitka/importing/__init__.py,sha256=w40IeNhLEN-0WIEfrNSgBpliGxeptuL3cNld1sVGtos,865
694
694
  nuitka/nodes/AsyncgenNodes.py,sha256=zEt0aaKqliBTpDSjkHeDMONSIaeeD-tlf3JVuV3J7_g,3519
@@ -742,7 +742,7 @@ nuitka/nodes/GeneratorNodes.py,sha256=YqzMdYBWcelwvV5P40WHoggdvPSkiHEordWl-T_Orv
742
742
  nuitka/nodes/GlobalsLocalsNodes.py,sha256=uat7ewJnan_l4IPKUEBlWAGf3RsuEkWMvE6tUb6AkY0,6961
743
743
  nuitka/nodes/HardImportNodesGenerated.py,sha256=BvN0R65InzmGr65JPK8nROT999PmUTEtliSxN6O3r_A,105941
744
744
  nuitka/nodes/ImportHardNodes.py,sha256=0GaMO1wfrqhXx0mMCCo42iK4SxmmTAOi-Z6rseOP3a0,5631
745
- nuitka/nodes/ImportNodes.py,sha256=S4LyvrSmS6OF536hDiK0hrHyxKfx3PwmrKG-X9UYey8,48614
745
+ nuitka/nodes/ImportNodes.py,sha256=KvuxxhIJ3lLEAcQ3TKLReHG-_I4y6tbWn29mPzxZXd0,48938
746
746
  nuitka/nodes/IndicatorMixins.py,sha256=HDFUzRD_o4vIFVRr0Vt05QuaQE8CmYO7WEJOC6UXU1g,2766
747
747
  nuitka/nodes/InjectCNodes.py,sha256=nabSlvlSupMOrGNAl-fZl71HKAVI7ZVvJFCeIbatMrA,1533
748
748
  nuitka/nodes/IterationHandles.py,sha256=DZhtIsfQYic3gaD8GuJ7cuTfT1TllWW-9UW3Ff0a9KM,11519
@@ -753,7 +753,7 @@ nuitka/nodes/LocalsScopes.py,sha256=KPz1UL5x0H19xn0SFDmLc_qLG4WnZaoi0X60mutByVY,
753
753
  nuitka/nodes/LoopNodes.py,sha256=kbNKVjM93g4Jo-aY7lEuSgv-4ElLVBTXO1J8c1MIxeE,15995
754
754
  nuitka/nodes/MatchNodes.py,sha256=zooBZr6sqwP8cobe_nobpFBUl-HhlyQDqdKVNusR6Po,2067
755
755
  nuitka/nodes/ModuleAttributeNodes.py,sha256=aLcsuZWwlRwJ29bgpWz2bZFyA00nPdESVowwizFpJQo,6044
756
- nuitka/nodes/ModuleNodes.py,sha256=QexGuHfBudublpIS2_ISIo69wolucsJDheUPTU6tAsA,34199
756
+ nuitka/nodes/ModuleNodes.py,sha256=fryn65OUWhedKmG6-XozqqPSC7SNkiesVd7fG2Gapes,34270
757
757
  nuitka/nodes/NetworkxNodes.py,sha256=8DoYPQB4XRpmHcmTZlcchNF1F4MMU8ovjA_E4Uvqut8,1759
758
758
  nuitka/nodes/NodeBases.py,sha256=Xft4HMzH8TKkWctXKc_27H9PgCYYyGtcrfpipUE_Rs4,25284
759
759
  nuitka/nodes/NodeMakingHelpers.py,sha256=C_MTOH7DPKFEtOeCbmmE1OJaa81IZ8mMkM-WcDWPVOk,15359
@@ -801,11 +801,11 @@ nuitka/optimizations/ValueTraces.py,sha256=bi_ie_D9aNgeIpd4X-aLcHf3TjLL0lk1y6qtY
801
801
  nuitka/optimizations/__init__.py,sha256=w40IeNhLEN-0WIEfrNSgBpliGxeptuL3cNld1sVGtos,865
802
802
  nuitka/pgo/PGO.py,sha256=g62CneE8ZBNgB8bSoRXE793AUsiEd74OHAHiIgvVkz8,4932
803
803
  nuitka/pgo/__init__.py,sha256=w40IeNhLEN-0WIEfrNSgBpliGxeptuL3cNld1sVGtos,865
804
- nuitka/plugins/PluginBase.py,sha256=Sd3PVvk33Hr-E0ge3HnR4ppeHuPXOfqjwpnQDkVTvu0,62933
805
- nuitka/plugins/Plugins.py,sha256=XCMaO65Ei9OGEtkQDRBIDzvajJh79VI2uztYaVu4Zfk,66861
804
+ nuitka/plugins/PluginBase.py,sha256=R3I5uO6wAmcp0N39GY_M7VV70mY6MHwAPoTeplCPEnM,62966
805
+ nuitka/plugins/Plugins.py,sha256=_8SvFj1FgnOadSeI1Sj_ZdQluq_rQnd4_kYN6ryG16Y,67371
806
806
  nuitka/plugins/YamlPluginBase.py,sha256=vCHIs_XQUsO7beMCmP88gKGXgO9dCgG1_CwHkPG8Dy0,4215
807
807
  nuitka/plugins/__init__.py,sha256=w40IeNhLEN-0WIEfrNSgBpliGxeptuL3cNld1sVGtos,865
808
- nuitka/plugins/standard/AntiBloatPlugin.py,sha256=RgK0qECZw4lrmheWXfLyKKuwHj2379p0Fc67PpsynKM,37673
808
+ nuitka/plugins/standard/AntiBloatPlugin.py,sha256=vhaRc_hM6CFPE9pcbv1Xrg7jAD-sXB4zGm_x7H67Huo,38332
809
809
  nuitka/plugins/standard/ConsiderPyLintAnnotationsPlugin.py,sha256=q1b7AaEonT4VMnWOCVhBDKm__fyrbwThkMS5lLihDag,3541
810
810
  nuitka/plugins/standard/DataFilesPlugin.py,sha256=hN660gozcIXNgZw47QhF-XBTc_yhqfwFu1Om0FiYpmU,11885
811
811
  nuitka/plugins/standard/DelvewheelPlugin.py,sha256=UFAeNeKeiomcrmL7lfN5jL1SNPc-2kwPtyol4qdU6mc,5240
@@ -832,11 +832,11 @@ nuitka/plugins/standard/SpacyPlugin.py,sha256=vZbf3l8bd9CnOfY3__tNk13zHwlHOQDJZN
832
832
  nuitka/plugins/standard/TensorflowPlugin.py,sha256=kuPhroJDR79tIQT8hQLoj-QeAPTzYQhW1kuWC_m_-Yc,1243
833
833
  nuitka/plugins/standard/TkinterPlugin.py,sha256=ArMSpX7k3o5kVtGqAz2ufWEhkUDgEnYkFoxIMiy4jDk,14372
834
834
  nuitka/plugins/standard/TorchPlugin.py,sha256=I_vW1qvOQZDnc11iM8j36BTNPQEy7THjgKqBaWYMU2U,1223
835
- nuitka/plugins/standard/TransformersPlugin.py,sha256=2bRzeTo7Jr-MzUc_NZMWgwYVHik06wSHRBabS_U_MjE,4722
835
+ nuitka/plugins/standard/TransformersPlugin.py,sha256=I8iJGAlIjtCG2o-tS9jRVZlTTV_kAGyfNqolujheL44,6189
836
836
  nuitka/plugins/standard/TrioPlugin.py,sha256=I_enOD_5jxMwcCXgHQKAWSnLjoCKFp-Xe_kU6e6TLnU,1156
837
837
  nuitka/plugins/standard/UpxPlugin.py,sha256=Go8Q7_rB-H6whIyibNYhJc-b6g03U1QAyv3cy6WuGQk,5704
838
838
  nuitka/plugins/standard/__init__.py,sha256=w40IeNhLEN-0WIEfrNSgBpliGxeptuL3cNld1sVGtos,865
839
- nuitka/plugins/standard/standard.nuitka-package.config.yml,sha256=g_hBQdezZEPKG5k8F606l067wzGsOQoRqgA5FlTtBeg,289569
839
+ nuitka/plugins/standard/standard.nuitka-package.config.yml,sha256=YJ1pbua9kRzWld7UhgSpVo5f4X1YXdC-4Kjz-iZCtqo,290794
840
840
  nuitka/plugins/standard/stdlib2.nuitka-package.config.yml,sha256=DRazC20zLXbc71ZMRu9kEA8N4Xe8Iry2sHNsUlbx4FE,2357
841
841
  nuitka/plugins/standard/stdlib3.nuitka-package.config.yml,sha256=EeEuyFZpqYb0qXv5xvjB20HFuH3oPyKHHujzIssBHjs,14812
842
842
  nuitka/plugins/standard/DillPlugin/DillPlugin.c,sha256=YdtiAOM3tSRku8mS2sAm65us8tgXYuB5Oq_Z0VJEtjI,1688
@@ -880,7 +880,7 @@ nuitka/tools/podman/__init__.py,sha256=w40IeNhLEN-0WIEfrNSgBpliGxeptuL3cNld1sVGt
880
880
  nuitka/tools/podman/__main__.py,sha256=_WFHREcSy1t3VK-2e5go9uUQ1jGXPCihmuWVPfGAu3k,11809
881
881
  nuitka/tools/profiler/__init__.py,sha256=w40IeNhLEN-0WIEfrNSgBpliGxeptuL3cNld1sVGtos,865
882
882
  nuitka/tools/profiler/__main__.py,sha256=f2dvGZyFXgQARPNfIcA6ZGmew1TLKlmPFburazr_qLg,2561
883
- nuitka/tools/scanning/DisplayDistributions.py,sha256=eBntwJmiNy6e_wKs-bzahMSSIeJDCTbsz-JGN7WxUI8,1473
883
+ nuitka/tools/scanning/DisplayDistributions.py,sha256=dp6gGdsSvfGZnfArvhHbeXQjE0RDVXTdPvdBR_p4Ggw,1636
884
884
  nuitka/tools/scanning/DisplayPackageDLLs.py,sha256=Mq-hcA4RAoHfKvj0utL6SbT-xK7lx7VW4lz-fxKV3tI,4605
885
885
  nuitka/tools/scanning/DisplayPackageData.py,sha256=kwIn_RNaOVxByDQYmDQ1ZR2FgE9Rmk_hJ4VISUxS29c,2314
886
886
  nuitka/tools/scanning/__init__.py,sha256=w40IeNhLEN-0WIEfrNSgBpliGxeptuL3cNld1sVGtos,865
@@ -942,7 +942,7 @@ nuitka/tree/ReformulationNamespacePackages.py,sha256=D_1iorJwWwAf7A1i3VNZ0OMQrbr
942
942
  nuitka/tree/ReformulationPrintStatements.py,sha256=hKnpCpEpZAA0MbQgGvovCqF6dC1wEB2OP0fMQ3n342g,4557
943
943
  nuitka/tree/ReformulationSequenceCreation.py,sha256=1ZqoiHIPgC2lcKJw5v0noYIBwrh3BoElhyGm5hVdMOQ,15050
944
944
  nuitka/tree/ReformulationSubscriptExpressions.py,sha256=SBKiUDjy-FMBkSXjRc7zQXbOhBDPR-8Wi4HbxOFGEow,4857
945
- nuitka/tree/ReformulationTryExceptStatements.py,sha256=7aMOkI_neuM9K77qIMmXIL3Zc4SHRk_LWAQodTkxA-M,14948
945
+ nuitka/tree/ReformulationTryExceptStatements.py,sha256=nrbWTIjQWLGTyyVuuCdjLCXrTbEo0-Xt2GcccxZtdmc,14983
946
946
  nuitka/tree/ReformulationTryFinallyStatements.py,sha256=A3bHEzTN3gfAMSRstKHSVWcVcud8fGLlpvem2JSdmh4,7449
947
947
  nuitka/tree/ReformulationWhileLoopStatements.py,sha256=iOJOzPegXZQtGFBBELcbe5GgJbCIl3Iz8PYjV0eV44s,5707
948
948
  nuitka/tree/ReformulationWithStatements.py,sha256=5ZDy8J8BQD98HYMjPtbxw_vBjVT58Duc2nijC-dAP8w,14108
@@ -970,12 +970,12 @@ nuitka/utils/Json.py,sha256=9A-8lCjj3jUbjdIgxgIC23wVKcNZddOoNUGVBPaE6sc,1312
970
970
  nuitka/utils/MacOSApp.py,sha256=2H6QMQUftmTtqRsHkzpq7PdM27SrxAwoAuZj6b6vy-w,4642
971
971
  nuitka/utils/MemoryUsage.py,sha256=ALhTNtnHKcWFiqq2TC0AeDCm3ZwQOyfi8rXq3v0YuzM,5092
972
972
  nuitka/utils/ModuleNames.py,sha256=a1wAXnQOrtEtSOkzH4JEP2wFHakTGhGYEbis-iLL-88,10025
973
- nuitka/utils/PackageResources.py,sha256=S5lAIW_W6deCJHXlNvORo-09xt8pZpTPYBUeoojNM9s,1584
973
+ nuitka/utils/PackageResources.py,sha256=J6Uu2lF1kksRvOEPx85WdQJHc21FgF1sKP2EZBjeiN0,2403
974
974
  nuitka/utils/ReExecute.py,sha256=Y9fD-jZ917HY3-jVZogNGCRhnFt82cYPWrWeN-Ep7LA,5121
975
975
  nuitka/utils/Rest.py,sha256=wdM1yZLMMx4_5zLD2fpB_sBZR4E5WGlCmzcVATW414A,1889
976
976
  nuitka/utils/SharedLibraries.py,sha256=82wad6McvjtxOwEJKfFHrfFt6I4BE_xZ170sEXDWlVg,29449
977
977
  nuitka/utils/Shebang.py,sha256=dbHDsSUXfvwZkSvkRE0k62bqNNR0FCBtgX0v6S1E0M0,3698
978
- nuitka/utils/Signing.py,sha256=OYwb-B8Z7Cldz4BVd9s0Od_WmLg45VZVqcz7bLICEKg,3928
978
+ nuitka/utils/Signing.py,sha256=aGEFr059qN20i_e1pDXu8qpQ3Lgv2ZAhsNxvyTVxGbc,3996
979
979
  nuitka/utils/SlotMetaClasses.py,sha256=m7ft4S5ia_HUkO35Yo0nYnvDpRH8N8bxkaroPKLVCJo,2084
980
980
  nuitka/utils/StaticLibraries.py,sha256=DK92TUWpobCVQKzSlMEg0pcFZ433K59ggagmg-NqbZU,7463
981
981
  nuitka/utils/ThreadedExecutor.py,sha256=Deqmu654QEkD8sXx4JNsjGTQrBtQFI5pYQ2S6JzgiII,2634
@@ -985,11 +985,11 @@ nuitka/utils/WindowsFileUsage.py,sha256=W8dLmHJAwQB_FnJ6SRqWAFzI7R80xZanlLBIl9eB
985
985
  nuitka/utils/WindowsResources.py,sha256=jo6SmmK3Pp1r-qHv0RY14xPVVkmfU5SrIXR-kwqOvCk,20199
986
986
  nuitka/utils/Yaml.py,sha256=-8Zs30gquXGpw7XaC_VaKhWvfj9FINpYNxpztYEussk,7206
987
987
  nuitka/utils/__init__.py,sha256=w40IeNhLEN-0WIEfrNSgBpliGxeptuL3cNld1sVGtos,865
988
- nuitka_winsvc-2.7.7.data/scripts/nuitka-run.cmd,sha256=uASa4E8VuTwqoePtEFscyPlxQ8B4AqFnr5HdSqSV7Gg,924
989
- nuitka_winsvc-2.7.7.data/scripts/nuitka.cmd,sha256=TISjQFHyLubxBwRvlag0Sqerbx6rUwLzpd7nRULR2Wg,1061
990
- nuitka_winsvc-2.7.7.dist-info/licenses/LICENSE.txt,sha256=ZWq74m8T3pVbRFjCBu74q_4GyW11rCqtYB_1vZ4rQ88,11348
991
- nuitka_winsvc-2.7.7.dist-info/METADATA,sha256=IvEpOT6_4Ghe6W8fnSHcTmBF3JKjeH5qOO-ST3xbw00,5401
992
- nuitka_winsvc-2.7.7.dist-info/WHEEL,sha256=qV0EIPljj1XC_vuSatRWjn02nZIz3N1t8jsZz7HBr2U,101
993
- nuitka_winsvc-2.7.7.dist-info/entry_points.txt,sha256=jeBnijqxZ4U0WpNEdtaogpNMNlv5jw8H7yMOsf2isFc,308
994
- nuitka_winsvc-2.7.7.dist-info/top_level.txt,sha256=TRrfKxSYukbo1yzTGfwyH7wVzhDpKlwQsLjhIr15yqY,7
995
- nuitka_winsvc-2.7.7.dist-info/RECORD,,
988
+ nuitka_winsvc-2.7.12.data/scripts/nuitka-run.cmd,sha256=uASa4E8VuTwqoePtEFscyPlxQ8B4AqFnr5HdSqSV7Gg,924
989
+ nuitka_winsvc-2.7.12.data/scripts/nuitka.cmd,sha256=TISjQFHyLubxBwRvlag0Sqerbx6rUwLzpd7nRULR2Wg,1061
990
+ nuitka_winsvc-2.7.12.dist-info/licenses/LICENSE.txt,sha256=ZWq74m8T3pVbRFjCBu74q_4GyW11rCqtYB_1vZ4rQ88,11348
991
+ nuitka_winsvc-2.7.12.dist-info/METADATA,sha256=eld9siNrZO166E1_mSExR8nSJnrG8juBa9_bY3EwkG4,5402
992
+ nuitka_winsvc-2.7.12.dist-info/WHEEL,sha256=qV0EIPljj1XC_vuSatRWjn02nZIz3N1t8jsZz7HBr2U,101
993
+ nuitka_winsvc-2.7.12.dist-info/entry_points.txt,sha256=jeBnijqxZ4U0WpNEdtaogpNMNlv5jw8H7yMOsf2isFc,308
994
+ nuitka_winsvc-2.7.12.dist-info/top_level.txt,sha256=TRrfKxSYukbo1yzTGfwyH7wVzhDpKlwQsLjhIr15yqY,7
995
+ nuitka_winsvc-2.7.12.dist-info/RECORD,,