Nuitka-winsvc 2.3.3__cp311-cp311-win_amd64.whl → 2.3.9__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 (50) hide show
  1. {Nuitka_winsvc-2.3.3.dist-info → Nuitka_winsvc-2.3.9.dist-info}/METADATA +1 -1
  2. {Nuitka_winsvc-2.3.3.dist-info → Nuitka_winsvc-2.3.9.dist-info}/RECORD +50 -29
  3. {Nuitka_winsvc-2.3.3.dist-info → Nuitka_winsvc-2.3.9.dist-info}/WHEEL +1 -1
  4. nuitka/Options.py +1 -1
  5. nuitka/PythonFlavors.py +15 -0
  6. nuitka/Version.py +1 -1
  7. nuitka/build/include/nuitka/compiled_function.h +2 -0
  8. nuitka/build/inline_copy/python_hacl/LICENSE.txt +201 -0
  9. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.c +1430 -0
  10. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_MD5.h +66 -0
  11. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.c +463 -0
  12. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA1.h +66 -0
  13. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.c +1273 -0
  14. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA2.h +204 -0
  15. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.c +734 -0
  16. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Hash_SHA3.h +131 -0
  17. nuitka/build/inline_copy/python_hacl/hacl_312/Hacl_Streaming_Types.h +83 -0
  18. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt128_Verified.h +346 -0
  19. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/FStar_UInt_8_16_32_64.h +107 -0
  20. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/fstar_uint128_struct_endianness.h +68 -0
  21. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/internal/target.h +293 -0
  22. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/lowstar_endianness.h +231 -0
  23. nuitka/build/inline_copy/python_hacl/hacl_312/include/krml/types.h +14 -0
  24. nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_MD5.h +56 -0
  25. nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA1.h +56 -0
  26. nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA2.h +164 -0
  27. nuitka/build/inline_copy/python_hacl/hacl_312/internal/Hacl_Hash_SHA3.h +65 -0
  28. nuitka/build/inline_copy/python_hacl/hacl_312/python_hacl_namespaces.h +89 -0
  29. nuitka/build/static_src/CompiledFrameType.c +2 -5
  30. nuitka/build/static_src/CompiledFunctionType.c +43 -4
  31. nuitka/build/static_src/HelpersAllocator.c +0 -2
  32. nuitka/build/static_src/MainProgram.c +17 -0
  33. nuitka/build/static_src/MetaPathBasedLoader.c +75 -46
  34. nuitka/code_generation/templates/CodeTemplatesModules.py +1 -10
  35. nuitka/freezer/DllDependenciesCommon.py +28 -3
  36. nuitka/freezer/DllDependenciesWin32.py +6 -1
  37. nuitka/importing/Importing.py +5 -1
  38. nuitka/nodes/ModuleNodes.py +3 -4
  39. nuitka/plugins/PluginBase.py +11 -3
  40. nuitka/plugins/standard/KivyPlugin.py +10 -0
  41. nuitka/plugins/standard/standard.nuitka-package.config.yml +213 -20
  42. nuitka/plugins/standard/stdlib3.nuitka-package.config.yml +27 -2
  43. nuitka/tools/testing/Common.py +22 -2
  44. nuitka/utils/FileOperations.py +38 -1
  45. nuitka/utils/SharedLibraries.py +1 -1
  46. {Nuitka_winsvc-2.3.3.data → Nuitka_winsvc-2.3.9.data}/scripts/nuitka-run.bat +0 -0
  47. {Nuitka_winsvc-2.3.3.data → Nuitka_winsvc-2.3.9.data}/scripts/nuitka.bat +0 -0
  48. {Nuitka_winsvc-2.3.3.dist-info → Nuitka_winsvc-2.3.9.dist-info}/LICENSE.txt +0 -0
  49. {Nuitka_winsvc-2.3.3.dist-info → Nuitka_winsvc-2.3.9.dist-info}/entry_points.txt +0 -0
  50. {Nuitka_winsvc-2.3.3.dist-info → Nuitka_winsvc-2.3.9.dist-info}/top_level.txt +0 -0
@@ -165,11 +165,12 @@
165
165
  dirs:
166
166
  - 'resources'
167
167
 
168
- - module-name: 'aspose' # checksum: 4f20a71e
168
+ - module-name: 'aspose' # checksum: 9babf530
169
169
  data-files:
170
170
  patterns:
171
171
  - '"**/*"+extension_std_suffix'
172
172
  - '**/*.dll'
173
+ when: 'not nuitka_python'
173
174
  anti-bloat:
174
175
  - no-follow:
175
176
  'aspose.*': 'workaround for aspose needing to load its submodules'
@@ -726,6 +727,15 @@
726
727
  dirs:
727
728
  - 'resources'
728
729
 
730
+ - module-name: 'cpuinfo.cpuinfo' # checksum: fc219e6
731
+ anti-bloat:
732
+ - description: 'workaround for forking itself'
733
+ replacements_plain:
734
+ "getattr(sys, 'frozen', False)": 'True'
735
+ 'getattr(sys, "frozen", False)': 'True'
736
+ 'CAN_CALL_CPUID_IN_SUBPROCESS = True': 'CAN_CALL_CPUID_IN_SUBPROCESS = False'
737
+ when: 'win32'
738
+
729
739
  - module-name: 'Crypto.Util._raw_api' # checksum: 6e46e262
730
740
  data-files:
731
741
  empty_dirs:
@@ -779,7 +789,7 @@
779
789
  # Not necessary on Windows
780
790
  when: 'not win32'
781
791
 
782
- - module-name: 'cv2' # checksum: 2aa22aa9
792
+ - module-name: 'cv2' # checksum: 4170eee
783
793
  data-files:
784
794
  dirs:
785
795
  - 'qt/fonts'
@@ -794,21 +804,26 @@
794
804
  - 'opencv_videoio'
795
805
  when: 'win32'
796
806
  anti-bloat:
797
- - description: 'workaround for colliding native module import'
807
+ - description: 'workaround for config module as code'
798
808
  context:
799
809
  - 'import textwrap'
800
810
  - 'import pkgutil'
801
- - 'from nuitka.utils.Importing import getSharedLibrarySuffix'
802
811
  replacements_plain:
803
812
  ? "load_first_config([\n"
804
813
  : 'if False: (['
805
814
  replacements:
806
815
  "load_first_config(['config.py'], True)": "textwrap.indent(pkgutil.get_data('cv2', 'config.py').decode('utf8'), ' ') + textwrap.indent(pkgutil.get_data('cv2', 'config-3.py').decode('utf8'), ' ')"
816
+ - description: 'workaround for colliding native module import'
817
+ replacements:
807
818
  # Before OpenCV 4.6
808
- 'native_module = importlib.import_module("cv2.cv2")': '"import imp; native_module = imp.load_dynamic(\"cv2\", os.path.join(os.path.dirname(__file__), \"cv2%s\"))" % getSharedLibrarySuffix(False)'
809
- # After OpenCV 4.6
810
- 'native_module = importlib.import_module("cv2")': '"import imp; native_module = imp.load_dynamic(\"cv2\", os.path.join(os.path.dirname(__file__), \"cv2%s\"))" % getSharedLibrarySuffix(False)'
811
- when: 'standalone'
819
+ 'native_module = importlib.import_module("cv2.cv2")': '"import imp; native_module = imp.load_dynamic(\"cv2\", os.path.join(os.path.dirname(__file__), \"cv2%s\"))" % extension_suffix'
820
+ # After OpenCV 4.6
821
+ 'native_module = importlib.import_module("cv2")': '"import imp; native_module = imp.load_dynamic(\"cv2\", os.path.join(os.path.dirname(__file__), \"cv2%s\"))" % extension_suffix'
822
+ when: 'standalone and before_python312 and not nuitka_python'
823
+ - description: 'workaround for colliding native module import'
824
+ replacements:
825
+ 'native_module = importlib.import_module("cv2")': '"from importlib.machinery import ExtensionFileLoader; from importlib.util import spec_from_file_location; from importlib._bootstrap import _load; __path = os.path.join(os.path.dirname(__file__), \"cv2%s\"); native_module = _load(spec_from_file_location(\"cv2\", __path, loader=ExtensionFileLoader(\"cv2\", __path)))" % extension_suffix'
826
+ when: 'standalone and python312_or_higher and not nuitka_python'
812
827
  implicit-imports:
813
828
  - depends:
814
829
  - 'cv2.cv2'
@@ -1099,6 +1114,16 @@
1099
1114
  replacements_plain:
1100
1115
  'load_module(str("_traceback_no_io"), traceback)': '__import__("traceback")'
1101
1116
 
1117
+ - module-name: 'en_core_web_sm' # checksum: 8ee8e024
1118
+ data-files:
1119
+ dirs:
1120
+ - '.'
1121
+ patterns:
1122
+ - '**/*.bin'
1123
+
1124
+ include-metadata:
1125
+ - 'en_core_web_sm'
1126
+
1102
1127
  - module-name: 'enchant' # checksum: 810a705a
1103
1128
  data-files:
1104
1129
  dirs:
@@ -1698,6 +1723,20 @@
1698
1723
  - 'imageio.plugins.simpleitk'
1699
1724
  - 'imageio.plugins.pillow'
1700
1725
 
1726
+ - module-name: 'imageio_ffmpeg' # checksum: cbcd4133
1727
+ dlls:
1728
+ - from_filenames:
1729
+ relative_path: 'binaries'
1730
+ prefixes:
1731
+ - 'ffmpeg'
1732
+ executable: 'yes'
1733
+
1734
+ - module-name: 'imageio_ffmpeg._utils' # checksum: 77b155b9
1735
+ anti-bloat:
1736
+ - description: 'Resolve correct path for ffmpeg binary'
1737
+ replacements_plain:
1738
+ 'return str(path.parent)': 'return os.path.join(os.path.dirname(__file__), "binaries")'
1739
+
1701
1740
  - module-name: 'imagej' # checksum: 763ace32
1702
1741
  anti-bloat:
1703
1742
  - description: 'compile time resolve version metadata'
@@ -1858,11 +1897,16 @@
1858
1897
  - depends:
1859
1898
  - 'win32timezone'
1860
1899
 
1861
- - module-name: 'kivy' # checksum: 810a705a
1900
+ - module-name: 'kivy' # checksum: aa55c3a4
1862
1901
  data-files:
1863
1902
  dirs:
1864
1903
  - 'data'
1865
1904
 
1905
+ options:
1906
+ checks:
1907
+ - description: 'Kivy is a GUI framework'
1908
+ macos_bundle: 'recommend'
1909
+
1866
1910
  - module-name: 'kivy._clock' # checksum: fbb1ca92
1867
1911
  implicit-imports:
1868
1912
  - depends:
@@ -2020,6 +2064,11 @@
2020
2064
  - depends:
2021
2065
  - 'lxml.etree'
2022
2066
 
2067
+ - module-name: 'lxml.sax' # checksum: 291d11ed
2068
+ implicit-imports:
2069
+ - depends:
2070
+ - 'xml.sax'
2071
+
2023
2072
  - module-name: 'magic' # checksum: 803cd877
2024
2073
  data-files:
2025
2074
  dirs:
@@ -2162,6 +2211,14 @@
2162
2211
  - 'matplotlib.backends.backend_wx'
2163
2212
  - 'wx'
2164
2213
 
2214
+ - module-name: 'matplotlib.backends.qt_compat' # checksum: b3a099d2
2215
+ anti-bloat:
2216
+ - description: 'avoid shiboken dependencies in case of no-qt plugin'
2217
+ no-auto-follow:
2218
+ 'shiboken2': 'ignore'
2219
+ 'shiboken6': 'ignore'
2220
+ when: 'use_noqt'
2221
+
2165
2222
  - module-name: 'matplotlib.figure' # checksum: e03fe475
2166
2223
  anti-bloat:
2167
2224
  - description: 'remove IPython reference'
@@ -2389,7 +2446,7 @@
2389
2446
  replacements_plain:
2390
2447
  'import numexpr.tests': 'raise ImportError'
2391
2448
 
2392
- - module-name: 'numpy' # checksum: c99de05
2449
+ - module-name: 'numpy' # checksum: d50b5b5e
2393
2450
  dlls:
2394
2451
  - from_filenames:
2395
2452
  relative_path: '.libs'
@@ -2410,8 +2467,14 @@
2410
2467
  when: 'is_conda_package("numpy")'
2411
2468
 
2412
2469
  anti-bloat:
2413
- - replacements_plain:
2470
+ - description: 'avoid URLs for AV noise'
2471
+ replacements_plain:
2414
2472
  'https://': ''
2473
+ - description: 'remove numpy.distutils references'
2474
+ no-auto-follow:
2475
+ 'numpy.distutils': 'ignore'
2476
+ when: 'not use_setuptools'
2477
+
2415
2478
  implicit-imports:
2416
2479
  - depends:
2417
2480
  - 'numpy._mklinit'
@@ -2433,7 +2496,7 @@
2433
2496
  def __init__(self, name):
2434
2497
  pass
2435
2498
 
2436
- - module-name: 'numpy.core' # checksum: 5769f3c9
2499
+ - module-name: 'numpy.core' # checksum: 4ed88aa0
2437
2500
  anti-bloat:
2438
2501
  - description: 'remove misleading numpy message'
2439
2502
  replacements_plain:
@@ -2445,6 +2508,7 @@
2445
2508
  - depends:
2446
2509
  - 'numpy.core._dtype_ctypes'
2447
2510
  - 'numpy.core._multiarray_tests'
2511
+ - 'numpy._core._multiarray_tests'
2448
2512
 
2449
2513
  - module-name: 'numpy.core.overrides' # checksum: 48ac7e42
2450
2514
  anti-bloat:
@@ -2453,7 +2517,7 @@
2453
2517
  'add_docstring(implementation, dispatcher.__doc__)': "'''add_docstring(implementation, dispatcher.__doc__ or '')'''"
2454
2518
  'public_api.__code__ = ': ''
2455
2519
 
2456
- - module-name: 'numpy.ctypeslib' # checksum: 664cfa3e
2520
+ - module-name: 'numpy.ctypeslib' # checksum: a3e2afc6
2457
2521
  anti-bloat:
2458
2522
  - description: 'remove numpy.distutils references'
2459
2523
  context:
@@ -2462,6 +2526,14 @@
2462
2526
  'from numpy.distutils.misc_util import get_shared_lib_extension': ''
2463
2527
  'get_shared_lib_extension()': 'repr(numpy.distutils.misc_util.get_shared_lib_extension())'
2464
2528
  'get_shared_lib_extension(is_python_ext=True)': 'repr(numpy.distutils.misc_util.get_shared_lib_extension(is_python_ext=True))'
2529
+ when: 'not use_setuptools'
2530
+
2531
+ - module-name: 'numpy.lib._utils_impl' # checksum: db52e110
2532
+ anti-bloat:
2533
+ - description: 'Avoid pydoc usage'
2534
+ change_function:
2535
+ 'info': 'un-callable'
2536
+ when: 'not use_pydoc'
2465
2537
 
2466
2538
  - module-name: 'numpy.lib.utils' # checksum: 26f115fc
2467
2539
  anti-bloat:
@@ -2878,8 +2950,8 @@
2878
2950
  - module-name: 'paddleocr' # checksum: 90264499
2879
2951
  import-hacks:
2880
2952
  - global-sys-path:
2881
- # This package forces itself into "sys.path" and expects absolute
2882
- # imports from all of these to be available.
2953
+ # This package forces itself into "sys.path" and expects absolute
2954
+ # imports from all of these to be available.
2883
2955
  - ''
2884
2956
  - 'ppstructure'
2885
2957
  - 'tools/infer'
@@ -3299,7 +3371,7 @@
3299
3371
  - depends:
3300
3372
  - 'PIL._tkinter_finder'
3301
3373
 
3302
- - module-name: 'PIL.Image' # checksum: bf79a54d
3374
+ - module-name: 'PIL.Image' # checksum: 560d430e
3303
3375
  anti-bloat:
3304
3376
  - description: 'avoid Qt dependency'
3305
3377
  no-auto-follow:
@@ -3309,7 +3381,10 @@
3309
3381
  no-auto-follow:
3310
3382
  'PIL.ImageQt': 'ignore'
3311
3383
  when: 'plugin("no-qt")'
3312
-
3384
+ - description: 'avoid numpy dependency'
3385
+ no-auto-follow:
3386
+ 'numpy': 'ignore'
3387
+ 'packaging': 'ignore'
3313
3388
  implicit-imports:
3314
3389
  - depends:
3315
3390
  - 'PIL.BlpImagePlugin'
@@ -3456,6 +3531,11 @@
3456
3531
  change_function:
3457
3532
  'embedded_data_path': "'(lambda: app_path())'"
3458
3533
 
3534
+ - module-name: 'playwright_stealth' # checksum: 3ebe1284
3535
+ data-files:
3536
+ dirs:
3537
+ - '.'
3538
+
3459
3539
  - module-name: 'plotly.graph_objects' # checksum: bf6dd64b
3460
3540
  anti-bloat:
3461
3541
  - description: 'remove IPython reference'
@@ -3576,10 +3656,19 @@
3576
3656
  'from extract_textpoint_fast import generate_pivot_list_fast, restore_poly': 'from .extract_textpoint_fast import generate_pivot_list_fast, restore_poly'
3577
3657
  import-hacks:
3578
3658
  - global-sys-path:
3579
- # This package forces itself into "sys.path" and expects absolute
3580
- # imports to be available.
3659
+ # This package forces itself into "sys.path" and expects absolute
3660
+ # imports to be available.
3581
3661
  - ''
3582
3662
 
3663
+ - module-name: 'preshed.counter' # checksum: 1e9d1989
3664
+ anti-bloat:
3665
+ - description: 'do not follow tests'
3666
+ no-auto-follow:
3667
+ 'preshed.tests': 'ignore'
3668
+ implicit-imports:
3669
+ - depends:
3670
+ - 'preshed.cymem'
3671
+
3583
3672
  - module-name: 'psutil' # checksum: 24d7eb52
3584
3673
  anti-bloat:
3585
3674
  - description: 'resolve platform specific imports at compile time'
@@ -4530,6 +4619,11 @@
4530
4619
  - no-auto-follow:
4531
4620
  'matplotlib': 'plotting will lack matplotlib'
4532
4621
 
4622
+ - module-name: 'scipy.signal' # checksum: 4ded0e67
4623
+ implicit-imports:
4624
+ - depends:
4625
+ - 'scipy.special._cdflib'
4626
+
4533
4627
  - module-name: 'scipy.sparse.csgraph' # checksum: 8997608e
4534
4628
  implicit-imports:
4535
4629
  - depends:
@@ -4644,6 +4738,11 @@
4644
4738
  executable: 'yes'
4645
4739
  when: 'win32'
4646
4740
 
4741
+ - module-name: 'selenium_stealth' # checksum: 3ebe1284
4742
+ data-files:
4743
+ dirs:
4744
+ - '.'
4745
+
4647
4746
  - module-name: 'sentence_transformers.SentenceTransformer' # checksum: c6062648
4648
4747
  implicit-imports:
4649
4748
  - depends:
@@ -5314,6 +5413,49 @@
5314
5413
  - 'libsndfile'
5315
5414
  when: 'macos'
5316
5415
 
5416
+ - module-name: 'spacy' # checksum: 99c1e2c8
5417
+ data-files:
5418
+ dirs:
5419
+ - '.'
5420
+ anti-bloat:
5421
+ - description: 'do not follow tests'
5422
+ no-auto-follow:
5423
+ 'spacy.tests': 'ignore'
5424
+
5425
+ - module-name: 'spacy.pipeline' # checksum: 285ab011
5426
+ implicit-imports:
5427
+ - depends:
5428
+ - 'thinc.extra.*'
5429
+ - 'spacy.pipeline.ner'
5430
+
5431
+ - module-name: 'spacy.pipeline._parser_internals' # checksum: 36eb559e
5432
+ implicit-imports:
5433
+ - depends:
5434
+ - 'spacy.pipeline._parser_internals._beam_utils'
5435
+ - 'spacy.pipeline._parser_internals._state'
5436
+ - 'spacy.pipeline._parser_internals.arc_eager'
5437
+ - 'spacy.pipeline._parser_internals.nonproj'
5438
+ - 'spacy.pipeline._parser_internals.stateclass'
5439
+ - 'spacy.pipeline._parser_internals.transition_system'
5440
+ - 'spacy.pipeline._parser_internals.ner'
5441
+
5442
+ - module-name: 'spacy.pipeline.dep_parser' # checksum: c61d0958
5443
+ implicit-imports:
5444
+ - depends:
5445
+ - 'spacy.pipeline.transition_parser'
5446
+
5447
+ - module-name: 'spacy.util' # checksum: 39e3b324
5448
+ implicit-imports:
5449
+ - depends:
5450
+ - 'spacy.lang.*'
5451
+
5452
+ - module-name: 'spacy.vocab' # checksum: 73f7507a
5453
+ implicit-imports:
5454
+ - depends:
5455
+ - 'spacy.lang.lex_attrs'
5456
+ - 'spacy.parts_of_speech'
5457
+ - 'spacy.lang.norm_exceptions'
5458
+
5317
5459
  - module-name: 'sparse' # checksum: 7a56f74f
5318
5460
  options:
5319
5461
  checks:
@@ -5771,7 +5913,12 @@
5771
5913
  'skiptests': 'un-callable'
5772
5914
  when: 'not use_pytest'
5773
5915
 
5774
- - module-name: 'tables' # checksum: 590cadeb
5916
+ - module-name: 'tables' # checksum: fc7f4f37
5917
+ dlls:
5918
+ - from_filenames:
5919
+ prefixes:
5920
+ - 'libblosc2'
5921
+
5775
5922
  anti-bloat:
5776
5923
  - description: 'remove tables.tests usage'
5777
5924
  replacements_plain:
@@ -6357,11 +6504,41 @@
6357
6504
  'IPython': 'ignore'
6358
6505
  when: 'not use_ipython'
6359
6506
 
6507
+ - module-name: 'thinc' # checksum: a21af6c5
6508
+ dlls:
6509
+ - from_filenames:
6510
+ relative_path: 'backends'
6511
+ prefixes:
6512
+ - '_custom_kernels'
6513
+ - '_murmur3'
6514
+ suffixes:
6515
+ - 'cu'
6516
+
6517
+ anti-bloat:
6518
+ - description: 'do not follow tests'
6519
+ no-auto-follow:
6520
+ 'thinc.tests': 'ignore'
6521
+
6360
6522
  - module-name: 'thinc.backends.cblas' # checksum: 53774cbb
6361
6523
  implicit-imports:
6362
6524
  - depends:
6363
6525
  - 'blis'
6364
6526
 
6527
+ - module-name: 'thinc.backends.numpy_ops' # checksum: a904b0a4
6528
+ implicit-imports:
6529
+ - depends:
6530
+ - 'thinc.backends.linalg'
6531
+
6532
+ - module-name: 'thinc.backends.numpy_ops.NumpyOps' # checksum: 53774cbb
6533
+ implicit-imports:
6534
+ - depends:
6535
+ - 'blis'
6536
+
6537
+ - module-name: 'thinc.layers.concatenate' # checksum: 90d2f7a2
6538
+ implicit-imports:
6539
+ - depends:
6540
+ - 'blis.py'
6541
+
6365
6542
  - module-name: 'tifffile.tifffile' # checksum: 9838c964
6366
6543
  anti-bloat:
6367
6544
  - description: 'remove module ability to run as a binary'
@@ -7356,6 +7533,12 @@
7356
7533
  replacements_plain:
7357
7534
  "';' + interop_dll_path(platform)": "';' + os.path.abspath(os.path.join(os.path.dirname(__file__), '..', 'lib', platform))"
7358
7535
 
7536
+ - module-name: 'webview.platforms.winforms' # checksum: 38f993f6
7537
+ anti-bloat:
7538
+ - replacements_plain:
7539
+ 'ExtractIconW(handle, sys.executable, 0)': 'ExtractIconW(handle, sys.argv[0], 0)'
7540
+ when: 'standalone and win32'
7541
+
7359
7542
  - module-name: 'werkzeug.serving' # checksum: fcfdb30e
7360
7543
  anti-bloat:
7361
7544
  - description: 'remove ability to run with reloader'
@@ -7626,6 +7809,16 @@
7626
7809
  prefixes:
7627
7810
  - 'zaber-motion-lib'
7628
7811
 
7812
+ - module-name: 'zeroconf._listener' # checksum: a6a63ed5
7813
+ implicit-imports:
7814
+ - depends:
7815
+ - 'zeroconf._handlers.answers'
7816
+
7817
+ - module-name: 'zeroconf._services.info' # checksum: abf003b9
7818
+ implicit-imports:
7819
+ - depends:
7820
+ - 'zeroconf._utils.ipaddress'
7821
+
7629
7822
  - module-name: 'zmq' # checksum: b0320bcc
7630
7823
  dlls:
7631
7824
  # Do not look at this one, using dest_path and suffixes is not
@@ -9,11 +9,27 @@
9
9
  - depends:
10
10
  - 'asyncio'
11
11
 
12
+ - module-name: '_curses_panel' # checksum: c9b072ec
13
+ implicit-imports:
14
+ - depends:
15
+ - 'curses'
16
+
17
+ - module-name: '_elementtree' # checksum: 109ba176
18
+ implicit-imports:
19
+ - depends:
20
+ - 'xml.etree.ElementPath'
21
+ - 'pyexpat'
22
+
12
23
  - module-name: '_osx_support' # checksum: e893ad4b
13
24
  anti-bloat:
14
25
  - no-auto-follow:
15
26
  'distutils': 'ignore'
16
27
 
28
+ - module-name: '_ssl' # checksum: 84c2a8c5
29
+ implicit-imports:
30
+ - depends:
31
+ - 'socket'
32
+
17
33
  - module-name: '_zoneinfo' # checksum: 8de2a2bd
18
34
  implicit-imports:
19
35
  - depends:
@@ -238,6 +254,13 @@
238
254
  "args += ['-c', cmd % r]": "args += ['--multiprocessing-resource-tracker', str(r)]"
239
255
  when: 'not module_mode'
240
256
 
257
+ - module-name: 'opcode' # checksum: bef1771d
258
+ implicit-imports:
259
+ # Overcome default non-inclusion of this module, required now
260
+ - depends:
261
+ - '_opcode'
262
+ when: 'python313_or_higher'
263
+
241
264
  - module-name: 'pdb' # checksum: 447bd07e
242
265
  anti-bloat:
243
266
  - description: 'remove module ability to run as a binary'
@@ -270,13 +293,15 @@
270
293
  change_function:
271
294
  '_main': "'(lambda: None)'"
272
295
 
273
- - module-name: 'pydoc' # checksum: 89c34a73
296
+ - module-name: 'pydoc' # checksum: 408973d4
274
297
  anti-bloat:
275
298
  - description: 'remove module ability to display GUI with tkinter and topics data'
276
299
  replacements:
277
300
  'import pydoc_data.topics': "'raise ImportError'"
278
301
  change_function:
279
- 'gui': "'(lambda : None)'"
302
+ 'gui': 'un-callable'
303
+ 'cli': 'un-callable'
304
+ 'browse': 'un-callable'
280
305
 
281
306
  - module-name: 'quopri' # checksum: 6a44b57d
282
307
  anti-bloat:
@@ -25,6 +25,7 @@ from nuitka.utils.AppDirs import getCacheDir
25
25
  from nuitka.utils.Execution import (
26
26
  check_output,
27
27
  createProcess,
28
+ executeProcess,
28
29
  getNullInput,
29
30
  getNullOutput,
30
31
  )
@@ -34,6 +35,7 @@ from nuitka.utils.FileOperations import (
34
35
  getFileContentByLine,
35
36
  getFileContents,
36
37
  getFileList,
38
+ getParentDirectories,
37
39
  isFilenameSameAsOrBelowPath,
38
40
  makePath,
39
41
  openTextFile,
@@ -470,9 +472,13 @@ def checkCompilesNotWithCPython(dirname, filename, search_mode):
470
472
  def checkSucceedsWithCPython(filename):
471
473
  command = [_python_executable, filename]
472
474
 
473
- result = subprocess.call(command, stdout=getNullOutput(), stderr=subprocess.STDOUT)
475
+ stdout, stderr, exit_code = executeProcess(command)
474
476
 
475
- return result == 0
477
+ if exit_code != 0:
478
+ my_print("stdout", stdout)
479
+ my_print("stderr", stderr)
480
+
481
+ return exit_code == 0
476
482
 
477
483
 
478
484
  def getDebugPython():
@@ -1392,6 +1398,7 @@ def checkLoadedFileAccesses(loaded_filenames, current_dir):
1392
1398
  current_dir = os.path.normpath(current_dir)
1393
1399
  current_dir = os.path.normcase(current_dir)
1394
1400
  current_dir_ext = os.path.normcase(getExternalUsePath(current_dir))
1401
+ current_dir_real = os.path.realpath(current_dir)
1395
1402
 
1396
1403
  illegal_accesses = []
1397
1404
 
@@ -1436,6 +1443,17 @@ def checkLoadedFileAccesses(loaded_filenames, current_dir):
1436
1443
  if loaded_filename.startswith(current_dir_ext):
1437
1444
  continue
1438
1445
 
1446
+ if loaded_filename.startswith(current_dir_real):
1447
+ continue
1448
+
1449
+ # Parent directories are OK too
1450
+ if (
1451
+ loaded_filename in getParentDirectories(current_dir)
1452
+ or loaded_filename in getParentDirectories(current_dir_ext)
1453
+ or loaded_filename in getParentDirectories(current_dir_real)
1454
+ ):
1455
+ continue
1456
+
1439
1457
  ignore = True
1440
1458
  for ignored_dir in (
1441
1459
  # System configuration is OK
@@ -1456,6 +1474,7 @@ def checkLoadedFileAccesses(loaded_filenames, current_dir):
1456
1474
  # Themes may of course be loaded.
1457
1475
  "/usr/share/themes",
1458
1476
  # Terminal info files are OK too.
1477
+ "/usr/share/terminfo",
1459
1478
  "/lib/terminfo",
1460
1479
  ):
1461
1480
  if isFilenameSameAsOrBelowPath(ignored_dir, loaded_filename):
@@ -1762,6 +1781,7 @@ def checkLoadedFileAccesses(loaded_filenames, current_dir):
1762
1781
 
1763
1782
  # macOS uses these:
1764
1783
  if loaded_basename in (
1784
+ "libc.dylib",
1765
1785
  "libcrypto.1.0.0.dylib",
1766
1786
  "libssl.1.0.0.dylib",
1767
1787
  "libcrypto.1.1.dylib",
@@ -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
  #
@@ -600,7 +600,7 @@ def _getFileCommandOutput(filename):
600
600
 
601
601
 
602
602
  def hasUniversalOrMatchingMacOSArchitecture(filename):
603
- assert isMacOS()
603
+ assert isMacOS() and os.path.isfile(filename), filename
604
604
 
605
605
  file_output = _getFileCommandOutput(filename)
606
606