Nuitka-winsvc 2.4.11__cp311-cp311-win_amd64.whl → 2.5.6__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-2.4.11.dist-info → Nuitka_winsvc-2.5.6.dist-info}/METADATA +56 -109
- {Nuitka_winsvc-2.4.11.dist-info → Nuitka_winsvc-2.5.6.dist-info}/RECORD +304 -280
- {Nuitka_winsvc-2.4.11.dist-info → Nuitka_winsvc-2.5.6.dist-info}/WHEEL +1 -1
- nuitka/Builtins.py +31 -0
- nuitka/HardImportRegistry.py +8 -0
- nuitka/MainControl.py +9 -4
- nuitka/OptionParsing.py +108 -54
- nuitka/Options.py +69 -13
- nuitka/OutputDirectories.py +7 -2
- nuitka/PostProcessing.py +69 -38
- nuitka/Progress.py +16 -1
- nuitka/PythonVersions.py +2 -1
- nuitka/Serialization.py +4 -2
- nuitka/Tracing.py +69 -1
- nuitka/Version.py +2 -2
- nuitka/build/Backend.scons +45 -5
- nuitka/build/CCompilerVersion.scons +6 -0
- nuitka/build/Onefile.scons +6 -0
- nuitka/build/SconsCaching.py +4 -0
- nuitka/build/SconsCompilerSettings.py +14 -3
- nuitka/build/SconsInterface.py +3 -0
- nuitka/build/SconsUtils.py +5 -0
- nuitka/build/include/nuitka/allocator.h +124 -1
- nuitka/build/include/nuitka/calling.h +6 -6
- nuitka/build/include/nuitka/compiled_asyncgen.h +10 -7
- nuitka/build/include/nuitka/compiled_frame.h +2 -1
- nuitka/build/include/nuitka/constants.h +8 -0
- nuitka/build/include/nuitka/debug_settings.h +60 -0
- nuitka/build/include/nuitka/exceptions.h +264 -121
- nuitka/build/include/nuitka/helper/attributes.h +0 -4
- nuitka/build/include/nuitka/helper/calling_generated.h +52 -52
- nuitka/build/include/nuitka/helper/comparisons_dual_eq.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_ge.h +39 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_gt.h +39 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_le.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_lt.h +47 -0
- nuitka/build/include/nuitka/helper/comparisons_dual_ne.h +39 -0
- nuitka/build/include/nuitka/helper/dictionaries.h +75 -31
- nuitka/build/include/nuitka/helper/ints.h +86 -37
- nuitka/build/include/nuitka/helper/iterators.h +82 -34
- nuitka/build/include/nuitka/helper/operations.h +3 -0
- nuitka/build/include/nuitka/helper/operations_binary_add.h +6 -0
- nuitka/build/include/nuitka/helper/operations_binary_dual_add.h +34 -0
- nuitka/build/include/nuitka/helper/operations_binary_sub.h +6 -0
- nuitka/build/include/nuitka/helper/operations_inplace_add.h +3 -0
- nuitka/build/include/nuitka/helper/operations_inplace_sub.h +3 -0
- nuitka/build/include/nuitka/helper/raising.h +47 -28
- nuitka/build/include/nuitka/helper/richcomparisons.h +7 -0
- nuitka/build/include/nuitka/helper/tuples.h +12 -0
- nuitka/build/include/nuitka/helpers.h +12 -2
- nuitka/build/include/nuitka/prelude.h +36 -25
- nuitka/build/include/nuitka/printing.h +9 -7
- nuitka/build/include/nuitka/threading.h +15 -1
- nuitka/build/include/nuitka/type_aliases.h +3 -0
- nuitka/build/inline_copy/stubgen/astunparse.py +938 -0
- nuitka/build/inline_copy/stubgen/six.py +998 -0
- nuitka/build/inline_copy/stubgen/stubgen.py +307 -0
- nuitka/build/static_src/CompiledAsyncgenType.c +45 -39
- nuitka/build/static_src/CompiledCellType.c +6 -4
- nuitka/build/static_src/CompiledCodeHelpers.c +106 -40
- nuitka/build/static_src/CompiledCoroutineType.c +41 -31
- nuitka/build/static_src/CompiledFrameType.c +110 -79
- nuitka/build/static_src/CompiledFunctionType.c +173 -151
- nuitka/build/static_src/CompiledGeneratorType.c +51 -49
- nuitka/build/static_src/CompiledGeneratorTypeUncompiledIntegration.c +433 -46
- nuitka/build/static_src/CompiledMethodType.c +6 -12
- nuitka/build/static_src/HelpersAllocator.c +266 -28
- nuitka/build/static_src/HelpersAttributes.c +0 -21
- nuitka/build/static_src/HelpersBuiltin.c +23 -14
- nuitka/build/static_src/HelpersCalling.c +7 -7
- nuitka/build/static_src/HelpersCallingGenerated.c +70 -70
- nuitka/build/static_src/HelpersComparisonDualEq.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualGe.c +121 -0
- nuitka/build/static_src/HelpersComparisonDualGt.c +121 -0
- nuitka/build/static_src/HelpersComparisonDualLe.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualLt.c +183 -0
- nuitka/build/static_src/HelpersComparisonDualNe.c +121 -0
- nuitka/build/static_src/HelpersComparisonEq.c +18 -4
- nuitka/build/static_src/HelpersComparisonGe.c +18 -4
- nuitka/build/static_src/HelpersComparisonGt.c +18 -4
- nuitka/build/static_src/HelpersComparisonLe.c +18 -4
- nuitka/build/static_src/HelpersComparisonLt.c +18 -4
- nuitka/build/static_src/HelpersComparisonNe.c +18 -4
- nuitka/build/static_src/HelpersConsole.c +34 -8
- nuitka/build/static_src/HelpersConstantsBlob.c +4 -2
- nuitka/build/static_src/HelpersDeepcopy.c +1 -0
- nuitka/build/static_src/HelpersDictionaries.c +195 -36
- nuitka/build/static_src/HelpersDictionariesGenerated.c +12 -107
- nuitka/build/static_src/HelpersExceptions.c +24 -50
- nuitka/build/static_src/HelpersFiles.c +79 -5
- nuitka/build/static_src/HelpersImport.c +13 -9
- nuitka/build/static_src/HelpersImportHard.c +23 -46
- nuitka/build/static_src/HelpersLists.c +98 -9
- nuitka/build/static_src/HelpersOperationBinaryAdd.c +224 -6
- nuitka/build/static_src/HelpersOperationBinaryAddUtils.c +3 -0
- nuitka/build/static_src/HelpersOperationBinaryBitand.c +5 -5
- nuitka/build/static_src/HelpersOperationBinaryBitor.c +5 -5
- nuitka/build/static_src/HelpersOperationBinaryBitxor.c +5 -5
- nuitka/build/static_src/HelpersOperationBinaryDivmod.c +8 -2
- nuitka/build/static_src/HelpersOperationBinaryDualAdd.c +172 -0
- nuitka/build/static_src/HelpersOperationBinaryFloordiv.c +14 -8
- nuitka/build/static_src/HelpersOperationBinaryLshift.c +36 -36
- nuitka/build/static_src/HelpersOperationBinaryMatmult.c +1 -0
- nuitka/build/static_src/HelpersOperationBinaryMod.c +22 -10
- nuitka/build/static_src/HelpersOperationBinaryMult.c +17 -7
- nuitka/build/static_src/HelpersOperationBinaryOlddiv.c +14 -8
- nuitka/build/static_src/HelpersOperationBinaryPow.c +24 -24
- nuitka/build/static_src/HelpersOperationBinaryRshift.c +4 -4
- nuitka/build/static_src/HelpersOperationBinarySub.c +229 -8
- nuitka/build/static_src/HelpersOperationBinaryTruediv.c +8 -2
- nuitka/build/static_src/HelpersOperationInplaceAdd.c +162 -10
- nuitka/build/static_src/HelpersOperationInplaceBitand.c +5 -5
- nuitka/build/static_src/HelpersOperationInplaceBitor.c +5 -5
- nuitka/build/static_src/HelpersOperationInplaceBitxor.c +5 -5
- nuitka/build/static_src/HelpersOperationInplaceFloordiv.c +11 -6
- nuitka/build/static_src/HelpersOperationInplaceLshift.c +20 -20
- nuitka/build/static_src/HelpersOperationInplaceMatmult.c +1 -0
- nuitka/build/static_src/HelpersOperationInplaceMod.c +11 -6
- nuitka/build/static_src/HelpersOperationInplaceMult.c +11 -6
- nuitka/build/static_src/HelpersOperationInplaceOlddiv.c +11 -6
- nuitka/build/static_src/HelpersOperationInplacePow.c +20 -20
- nuitka/build/static_src/HelpersOperationInplaceRshift.c +4 -4
- nuitka/build/static_src/HelpersOperationInplaceSub.c +163 -10
- nuitka/build/static_src/HelpersOperationInplaceTruediv.c +6 -1
- nuitka/build/static_src/HelpersProfiling.c +1 -1
- nuitka/build/static_src/HelpersRaising.c +255 -310
- nuitka/build/static_src/HelpersStrings.c +1 -1
- nuitka/build/static_src/HelpersTuples.c +2 -2
- nuitka/build/static_src/HelpersTypes.c +98 -2
- nuitka/build/static_src/MainProgram.c +132 -28
- nuitka/build/static_src/MetaPathBasedLoader.c +18 -19
- nuitka/build/static_src/MetaPathBasedLoaderResourceReaderFiles.c +134 -11
- nuitka/build/static_src/OnefileBootstrap.c +6 -1
- nuitka/code_generation/AsyncgenCodes.py +2 -6
- nuitka/code_generation/BinaryOperationHelperDefinitions.py +269 -167
- nuitka/code_generation/BuiltinCodes.py +9 -1
- nuitka/code_generation/CallCodes.py +16 -16
- nuitka/code_generation/CodeGeneration.py +14 -2
- nuitka/code_generation/CodeHelperSelection.py +1 -1
- nuitka/code_generation/CodeHelpers.py +4 -1
- nuitka/code_generation/CodeObjectCodes.py +2 -2
- nuitka/code_generation/ComparisonCodes.py +13 -2
- nuitka/code_generation/ComparisonHelperDefinitions.py +23 -8
- nuitka/code_generation/Contexts.py +28 -16
- nuitka/code_generation/CoroutineCodes.py +2 -6
- nuitka/code_generation/DictCodes.py +3 -3
- nuitka/code_generation/ErrorCodes.py +34 -50
- nuitka/code_generation/ExceptionCodes.py +165 -96
- nuitka/code_generation/ExpressionCTypeSelectionHelpers.py +25 -10
- nuitka/code_generation/FrameCodes.py +4 -11
- nuitka/code_generation/FunctionCodes.py +2 -6
- nuitka/code_generation/GeneratorCodes.py +2 -6
- nuitka/code_generation/GlobalConstants.py +8 -2
- nuitka/code_generation/GlobalsLocalsCodes.py +2 -2
- nuitka/code_generation/IteratorCodes.py +67 -54
- nuitka/code_generation/LineNumberCodes.py +1 -3
- nuitka/code_generation/ModuleCodes.py +28 -4
- nuitka/code_generation/OperationCodes.py +51 -20
- nuitka/code_generation/PackageResourceCodes.py +37 -0
- nuitka/code_generation/RaisingCodes.py +164 -90
- nuitka/code_generation/Reports.py +13 -5
- nuitka/code_generation/ReturnCodes.py +2 -16
- nuitka/code_generation/TryCodes.py +12 -24
- nuitka/code_generation/TypeAliasCodes.py +48 -0
- nuitka/code_generation/VariableCodes.py +99 -40
- nuitka/code_generation/VariableDeclarations.py +8 -8
- nuitka/code_generation/YieldCodes.py +1 -1
- nuitka/code_generation/c_types/CTypeBases.py +10 -2
- nuitka/code_generation/c_types/CTypeModuleDictVariables.py +3 -0
- nuitka/code_generation/c_types/CTypeNuitkaBooleans.py +3 -4
- nuitka/code_generation/c_types/CTypeNuitkaInts.py +70 -25
- nuitka/code_generation/c_types/CTypeNuitkaVoids.py +1 -1
- nuitka/code_generation/c_types/CTypePyObjectPointers.py +16 -6
- nuitka/code_generation/templates/CodeTemplatesAsyncgens.py +2 -2
- nuitka/code_generation/templates/CodeTemplatesConstants.py +11 -3
- nuitka/code_generation/templates/CodeTemplatesCoroutines.py +2 -2
- nuitka/code_generation/templates/CodeTemplatesExceptions.py +15 -16
- nuitka/code_generation/templates/CodeTemplatesFrames.py +18 -10
- nuitka/code_generation/templates/CodeTemplatesFunction.py +2 -2
- nuitka/code_generation/templates/CodeTemplatesGeneratorFunction.py +2 -2
- nuitka/code_generation/templates/CodeTemplatesIterators.py +1 -35
- nuitka/code_generation/templates/CodeTemplatesModules.py +34 -4
- nuitka/code_generation/templates/CodeTemplatesVariables.py +76 -0
- nuitka/code_generation/templates_c/CodeTemplateCallsMixed.c.j2 +3 -3
- nuitka/code_generation/templates_c/CodeTemplateCallsPositional.c.j2 +3 -3
- nuitka/code_generation/templates_c/HelperDictionaryCopy.c.j2 +4 -106
- nuitka/code_generation/templates_c/HelperImportHard.c.j2 +1 -2
- nuitka/code_generation/templates_c/HelperLongTools.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperOperationBinaryDual.c.j2 +115 -0
- nuitka/code_generation/templates_c/HelperOperationComparisonBytes.c.j2 +9 -9
- nuitka/code_generation/templates_c/HelperOperationComparisonDual.c.j2 +86 -0
- nuitka/code_generation/templates_c/HelperOperationComparisonFloat.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperOperationComparisonInt.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperOperationComparisonList.c.j2 +9 -9
- nuitka/code_generation/templates_c/HelperOperationComparisonLong.c.j2 +7 -7
- nuitka/code_generation/templates_c/HelperOperationComparisonStr.c.j2 +9 -9
- nuitka/code_generation/templates_c/HelperOperationComparisonTuple.c.j2 +7 -7
- nuitka/code_generation/templates_c/HelperOperationComparisonUnicode.c.j2 +4 -4
- nuitka/code_generation/templates_c/HelperSlotsBinary.c.j2 +1 -1
- nuitka/code_generation/templates_c/HelperSlotsInt.c.j2 +31 -31
- nuitka/code_generation/templates_c/HelperSlotsLong.c.j2 +1 -1
- nuitka/containers/Namedtuples.py +6 -0
- nuitka/containers/OrderedSets.py +105 -5
- nuitka/distutils/Build.py +14 -0
- nuitka/distutils/DistutilCommands.py +50 -10
- nuitka/finalizations/Finalization.py +3 -3
- nuitka/finalizations/FinalizeMarkups.py +10 -14
- nuitka/freezer/DependsExe.py +5 -2
- nuitka/freezer/DllDependenciesMacOS.py +18 -1
- nuitka/freezer/DllDependenciesWin32.py +26 -12
- nuitka/freezer/ImportDetection.py +6 -0
- nuitka/freezer/IncludedDataFiles.py +37 -6
- nuitka/freezer/Onefile.py +1 -0
- nuitka/freezer/Standalone.py +72 -18
- nuitka/importing/Importing.py +33 -6
- nuitka/importing/Recursion.py +5 -2
- nuitka/importing/StandardLibrary.py +57 -59
- nuitka/nodes/AsyncgenNodes.py +3 -6
- nuitka/nodes/BuiltinIteratorNodes.py +2 -2
- nuitka/nodes/BuiltinRefNodes.py +14 -30
- nuitka/nodes/ChildrenHavingMixins.py +439 -46
- nuitka/nodes/ConditionalNodes.py +3 -2
- nuitka/nodes/CoroutineNodes.py +3 -6
- nuitka/nodes/DictionaryNodes.py +1 -1
- nuitka/nodes/ExceptionNodes.py +102 -26
- nuitka/nodes/ExpressionBasesGenerated.py +288 -4
- nuitka/nodes/FrameNodes.py +22 -11
- nuitka/nodes/FunctionNodes.py +3 -3
- nuitka/nodes/GeneratorNodes.py +3 -6
- nuitka/nodes/HardImportNodesGenerated.py +182 -0
- nuitka/nodes/ImportNodes.py +2 -2
- nuitka/nodes/NodeBases.py +28 -1
- nuitka/nodes/NodeMakingHelpers.py +71 -50
- nuitka/nodes/OperatorNodesUnary.py +128 -3
- nuitka/nodes/OsSysNodes.py +37 -6
- nuitka/nodes/OutlineNodes.py +2 -2
- nuitka/nodes/StatementBasesGenerated.py +0 -2
- nuitka/nodes/StatementNodes.py +8 -7
- nuitka/nodes/SubscriptNodes.py +1 -1
- nuitka/nodes/TypeNodes.py +28 -1
- nuitka/nodes/VariableAssignNodes.py +2 -1
- nuitka/nodes/shapes/BuiltinTypeShapes.py +24 -7
- nuitka/nodes/shapes/IteratorShapes.py +71 -0
- nuitka/nodes/shapes/ShapeMixins.py +18 -0
- nuitka/nodes/shapes/StandardShapes.py +47 -44
- nuitka/optimizations/BytecodeDemotion.py +2 -1
- nuitka/plugins/PluginBase.py +64 -22
- nuitka/plugins/Plugins.py +16 -3
- nuitka/plugins/standard/AntiBloatPlugin.py +23 -12
- nuitka/plugins/standard/DllFilesPlugin.py +78 -2
- nuitka/plugins/standard/ImplicitImports.py +5 -15
- nuitka/plugins/standard/KivyPlugin.py +3 -12
- nuitka/plugins/standard/MatplotlibPlugin.py +12 -1
- nuitka/plugins/standard/MultiprocessingPlugin.py +11 -20
- nuitka/plugins/standard/OptionsNannyPlugin.py +5 -4
- nuitka/plugins/standard/PlaywrightPlugin.py +184 -0
- nuitka/plugins/standard/PySidePyQtPlugin.py +8 -0
- nuitka/plugins/standard/TkinterPlugin.py +23 -3
- nuitka/plugins/standard/TransformersPlugin.py +70 -275
- nuitka/plugins/standard/standard.nuitka-package.config.yml +413 -30
- nuitka/plugins/standard/stdlib3.nuitka-package.config.yml +35 -2
- nuitka/reports/CompilationReportReader.py +12 -0
- nuitka/reports/Reports.py +11 -0
- nuitka/specs/BuiltinParameterSpecs.py +5 -1
- nuitka/specs/HardImportSpecs.py +7 -0
- nuitka/specs/ParameterSpecs.py +4 -4
- nuitka/tools/environments/Virtualenv.py +13 -5
- nuitka/tools/general/dll_report/__main__.py +10 -1
- nuitka/tools/onefile_compressor/OnefileCompressor.py +1 -1
- nuitka/tools/podman/__main__.py +4 -2
- nuitka/tools/specialize/CTypeDescriptions.py +158 -9
- nuitka/tools/specialize/SpecializeC.py +218 -56
- nuitka/tools/testing/Common.py +69 -62
- nuitka/tools/testing/compare_with_cpython/__main__.py +3 -1
- nuitka/tools/testing/measure_construct_performance/__main__.py +1 -8
- nuitka/tools/testing/run_nuitka_tests/__main__.py +77 -11
- nuitka/tools/watch/AutoStage.py +1 -0
- nuitka/tree/Building.py +10 -37
- nuitka/tree/ComplexCallHelperFunctions.py +4 -0
- nuitka/tree/ReformulationAssertStatements.py +31 -14
- nuitka/tree/ReformulationAssignmentStatements.py +5 -1
- nuitka/tree/ReformulationClasses3.py +94 -19
- nuitka/tree/ReformulationDictionaryCreation.py +1 -0
- nuitka/tree/ReformulationFunctionStatements.py +1 -1
- nuitka/tree/ReformulationMatchStatements.py +3 -1
- nuitka/tree/ReformulationYieldExpressions.py +23 -5
- nuitka/utils/CommandLineOptions.py +27 -3
- nuitka/utils/Download.py +2 -2
- nuitka/utils/Execution.py +36 -31
- nuitka/utils/FileOperations.py +18 -39
- nuitka/utils/Hashing.py +5 -1
- nuitka/utils/Importing.py +2 -14
- nuitka/utils/InlineCopies.py +52 -0
- nuitka/utils/InstalledPythons.py +9 -4
- nuitka/utils/Json.py +2 -2
- nuitka/utils/PackageResources.py +44 -0
- nuitka/utils/SharedLibraries.py +24 -0
- nuitka/utils/Signing.py +9 -1
- nuitka/utils/Utils.py +1 -0
- {Nuitka_winsvc-2.4.11.data → Nuitka_winsvc-2.5.6.data}/scripts/nuitka-run.cmd +0 -0
- {Nuitka_winsvc-2.4.11.data → Nuitka_winsvc-2.5.6.data}/scripts/nuitka.cmd +0 -0
- {Nuitka_winsvc-2.4.11.dist-info → Nuitka_winsvc-2.5.6.dist-info}/LICENSE.txt +0 -0
- {Nuitka_winsvc-2.4.11.dist-info → Nuitka_winsvc-2.5.6.dist-info}/entry_points.txt +0 -0
- {Nuitka_winsvc-2.4.11.dist-info → Nuitka_winsvc-2.5.6.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
# Copyright 2024, Kevin Rodriguez <mailto:turcioskevinr@gmail.com> find license text at end of file
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
""" Plugin for Playwright.
|
|
5
|
+
|
|
6
|
+
spell-checker: ignore Playwright
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
import os
|
|
10
|
+
|
|
11
|
+
from nuitka.Options import isStandaloneMode
|
|
12
|
+
from nuitka.plugins.PluginBase import NuitkaPluginBase
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class NuitkaPluginPlaywright(NuitkaPluginBase):
|
|
16
|
+
"""This class represents the main logic of the plugin."""
|
|
17
|
+
|
|
18
|
+
plugin_name = "playwright"
|
|
19
|
+
plugin_desc = "Required by 'playwright' package."
|
|
20
|
+
|
|
21
|
+
def __init__(self, include_browsers):
|
|
22
|
+
self.include_browsers = list(include_browsers)
|
|
23
|
+
self.installed_browsers = None
|
|
24
|
+
|
|
25
|
+
@staticmethod
|
|
26
|
+
def isAlwaysEnabled():
|
|
27
|
+
return True
|
|
28
|
+
|
|
29
|
+
@staticmethod
|
|
30
|
+
def isRelevant():
|
|
31
|
+
return isStandaloneMode()
|
|
32
|
+
|
|
33
|
+
@classmethod
|
|
34
|
+
def addPluginCommandLineOptions(cls, group):
|
|
35
|
+
group.add_option(
|
|
36
|
+
"--playwright-include-browser",
|
|
37
|
+
action="append",
|
|
38
|
+
dest="include_browsers",
|
|
39
|
+
default=[],
|
|
40
|
+
help="""\
|
|
41
|
+
Playwright browser to include. Can be specified multiple times. use "all" to include all installed browsers.
|
|
42
|
+
""",
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
def _getPlaywrightPath(self):
|
|
46
|
+
"""Determine the path of the playwright module."""
|
|
47
|
+
info = self.locateModule("playwright")
|
|
48
|
+
|
|
49
|
+
if info is None:
|
|
50
|
+
self.sysexit("Error, it seems 'playwright' is not installed or broken.")
|
|
51
|
+
|
|
52
|
+
return info
|
|
53
|
+
|
|
54
|
+
def _getPlaywrightRegistryDirectory(self):
|
|
55
|
+
# this is a port of playwright's JS script which determines where the browsers are installed
|
|
56
|
+
|
|
57
|
+
env_defined = os.environ.get("PLAYWRIGHT_BROWSERS_PATH")
|
|
58
|
+
path_home = os.path.expanduser("~")
|
|
59
|
+
playwright_module_path = self._getPlaywrightPath()
|
|
60
|
+
|
|
61
|
+
result = os.path.join(
|
|
62
|
+
playwright_module_path, "driver", "package", ".local-browsers"
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
# TODO: This is seemingly a test for non-empty directory, which we should
|
|
66
|
+
# then add to FileOperations.
|
|
67
|
+
|
|
68
|
+
if os.path.exists(result) and next(os.scandir(result), False):
|
|
69
|
+
return result
|
|
70
|
+
elif env_defined == "0":
|
|
71
|
+
return result
|
|
72
|
+
elif env_defined:
|
|
73
|
+
result = os.path.normpath(env_defined)
|
|
74
|
+
else:
|
|
75
|
+
cache_directory = ""
|
|
76
|
+
if os.name == "posix":
|
|
77
|
+
cache_directory = os.environ.get(
|
|
78
|
+
"XDG_CACHE_HOME", os.path.join(path_home, ".cache")
|
|
79
|
+
)
|
|
80
|
+
elif os.name == "darwin":
|
|
81
|
+
cache_directory = os.path.join(path_home, "Library", "Caches")
|
|
82
|
+
elif os.name == "nt":
|
|
83
|
+
cache_directory = os.environ.get(
|
|
84
|
+
"LOCALAPPDATA", os.path.join(path_home, "AppData", "Local")
|
|
85
|
+
)
|
|
86
|
+
|
|
87
|
+
result = os.path.join(cache_directory, "ms-playwright")
|
|
88
|
+
|
|
89
|
+
if not os.path.isabs(result):
|
|
90
|
+
init_cwd = os.environ.get("INIT_CWD") or os.getcwd()
|
|
91
|
+
result = os.path.join(os.path.abspath(init_cwd), result)
|
|
92
|
+
|
|
93
|
+
return result
|
|
94
|
+
|
|
95
|
+
def getInstalledPlaywrightBrowsers(self):
|
|
96
|
+
registry_directory = self._getPlaywrightRegistryDirectory()
|
|
97
|
+
if not os.path.exists(registry_directory):
|
|
98
|
+
return
|
|
99
|
+
|
|
100
|
+
# TODO: Seems useless use of os.scandir, our helper for listing a directory
|
|
101
|
+
# would be better to use.
|
|
102
|
+
browsers_installed = [
|
|
103
|
+
browser
|
|
104
|
+
for browser in os.scandir(registry_directory)
|
|
105
|
+
if browser.name != ".links"
|
|
106
|
+
]
|
|
107
|
+
self.installed_browsers = {}
|
|
108
|
+
for browser in browsers_installed:
|
|
109
|
+
self.installed_browsers[browser.name] = browser
|
|
110
|
+
|
|
111
|
+
def considerDataFiles(self, module):
|
|
112
|
+
|
|
113
|
+
if module.getFullName() != "playwright":
|
|
114
|
+
return
|
|
115
|
+
|
|
116
|
+
if not self.include_browsers:
|
|
117
|
+
|
|
118
|
+
self.sysexit(
|
|
119
|
+
"No browsers included. Use the option '--playwright-include-browser=browser_name' to include one. Use 'all' to include all installed ones." # pylint: disable=C0301
|
|
120
|
+
)
|
|
121
|
+
|
|
122
|
+
self.getInstalledPlaywrightBrowsers()
|
|
123
|
+
|
|
124
|
+
if not self.installed_browsers:
|
|
125
|
+
self.sysexit(
|
|
126
|
+
"Error, no browsers found in the registry, if you're using playwright, make sure to install a browser."
|
|
127
|
+
)
|
|
128
|
+
|
|
129
|
+
self.info("Including browsers: %s" % ", ".join(self.include_browsers))
|
|
130
|
+
if "all" in self.include_browsers:
|
|
131
|
+
self.include_browsers = self.installed_browsers
|
|
132
|
+
elif "ffmpeg" not in self.include_browsers and any(
|
|
133
|
+
browser.startswith("chrom") for browser in self.include_browsers
|
|
134
|
+
):
|
|
135
|
+
for browser in self.installed_browsers:
|
|
136
|
+
if "ffmpeg" in self.installed_browsers[browser].name:
|
|
137
|
+
self.include_browsers.append(browser)
|
|
138
|
+
self.info(
|
|
139
|
+
"Including 'ffmpeg' for chromium-based browser. It is required by playwright."
|
|
140
|
+
)
|
|
141
|
+
break
|
|
142
|
+
|
|
143
|
+
for browser in self.include_browsers:
|
|
144
|
+
if browser not in self.installed_browsers:
|
|
145
|
+
msg = (
|
|
146
|
+
"Error, requested to include browser '%s' that was not found, the list of installed ones is '%s'."
|
|
147
|
+
% (
|
|
148
|
+
browser,
|
|
149
|
+
", ".join(self.installed_browsers),
|
|
150
|
+
)
|
|
151
|
+
)
|
|
152
|
+
self.sysexit(msg)
|
|
153
|
+
|
|
154
|
+
msg = "Including '%s' from '%s'." % (
|
|
155
|
+
browser,
|
|
156
|
+
self.installed_browsers[browser].path,
|
|
157
|
+
)
|
|
158
|
+
self.info(msg)
|
|
159
|
+
|
|
160
|
+
yield self.makeIncludedDataDirectory(
|
|
161
|
+
source_path=self.installed_browsers[browser],
|
|
162
|
+
dest_path=os.path.join(
|
|
163
|
+
"playwright", "driver", "package", ".local-browsers", browser
|
|
164
|
+
),
|
|
165
|
+
reason="Playwright browser '%s'" % browser,
|
|
166
|
+
tags="playwright",
|
|
167
|
+
raw=True,
|
|
168
|
+
)
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
172
|
+
# integrates with CPython, but also works on its own.
|
|
173
|
+
#
|
|
174
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
175
|
+
# you may not use this file except in compliance with the License.
|
|
176
|
+
# You may obtain a copy of the License at
|
|
177
|
+
#
|
|
178
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
179
|
+
#
|
|
180
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
181
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
182
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
183
|
+
# See the License for the specific language governing permissions and
|
|
184
|
+
# limitations under the License.
|
|
@@ -72,6 +72,14 @@ class NuitkaPluginQtBindingsPluginBase(NuitkaPluginBase):
|
|
|
72
72
|
if "sensible" in include_qt_plugins:
|
|
73
73
|
include_qt_plugins.remove("sensible")
|
|
74
74
|
|
|
75
|
+
for include_qt_plugin in include_qt_plugins:
|
|
76
|
+
if include_qt_plugin not in ("qml", "all") and not self.hasPluginFamily(
|
|
77
|
+
include_qt_plugin
|
|
78
|
+
):
|
|
79
|
+
self.sysexit(
|
|
80
|
+
"Error, there is no Qt plugin family '%s'." % include_qt_plugin
|
|
81
|
+
)
|
|
82
|
+
|
|
75
83
|
self.qt_plugins = sensible_qt_plugins
|
|
76
84
|
self.qt_plugins.update(include_qt_plugins)
|
|
77
85
|
|
|
@@ -66,14 +66,14 @@ class NuitkaPluginTkinter(NuitkaPluginBase):
|
|
|
66
66
|
self.tcl_library_dir = tcl_library_dir
|
|
67
67
|
self.tk_library_dir = tk_library_dir
|
|
68
68
|
|
|
69
|
-
# ensure one-time action, we deal with
|
|
70
|
-
# only want to do it once.
|
|
69
|
+
# ensure one-time action, we deal with several names for the execution,
|
|
70
|
+
# yet we only want to do it once.
|
|
71
71
|
self.files_copied = False
|
|
72
72
|
|
|
73
73
|
self.tk_inter_version = getTkInterVersion()
|
|
74
74
|
|
|
75
75
|
if self.tk_inter_version is None:
|
|
76
|
-
self.sysexit("Error, it seems tk-inter is not installed.")
|
|
76
|
+
self.sysexit("Error, it seems 'tk-inter' is not installed.")
|
|
77
77
|
|
|
78
78
|
# Only ever saw these 2 in use.
|
|
79
79
|
assert self.tk_inter_version in ("8.5", "8.6"), self.tk_inter_version
|
|
@@ -164,6 +164,16 @@ The Tcl library dir. See comments for Tk library dir.""",
|
|
|
164
164
|
)
|
|
165
165
|
)
|
|
166
166
|
|
|
167
|
+
# Homebrew is compiled to think it's 8.6, but it might actually
|
|
168
|
+
# be the version 9.
|
|
169
|
+
yield os.path.normpath(
|
|
170
|
+
os.path.join(
|
|
171
|
+
_getHomebrewPrefix(self),
|
|
172
|
+
"lib",
|
|
173
|
+
"tcl9",
|
|
174
|
+
)
|
|
175
|
+
)
|
|
176
|
+
|
|
167
177
|
def _getTkCandidatePaths(self):
|
|
168
178
|
yield os.getenv("TK_LIBRARY")
|
|
169
179
|
|
|
@@ -191,6 +201,16 @@ The Tcl library dir. See comments for Tk library dir.""",
|
|
|
191
201
|
)
|
|
192
202
|
)
|
|
193
203
|
|
|
204
|
+
# Homebrew is compiled to think it's 8.6, but it might actually
|
|
205
|
+
# be the version 9.
|
|
206
|
+
yield os.path.normpath(
|
|
207
|
+
os.path.join(
|
|
208
|
+
_getHomebrewPrefix(self),
|
|
209
|
+
"lib",
|
|
210
|
+
"tk9.0",
|
|
211
|
+
)
|
|
212
|
+
)
|
|
213
|
+
|
|
194
214
|
def considerDataFiles(self, module):
|
|
195
215
|
"""Provide TCL libraries to the dist folder.
|
|
196
216
|
|
|
@@ -17,287 +17,54 @@ class NuitkaPluginTransformers(NuitkaPluginBase):
|
|
|
17
17
|
def isAlwaysEnabled():
|
|
18
18
|
return True
|
|
19
19
|
|
|
20
|
-
#
|
|
21
|
-
_import_structure_modules = (
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
"
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
"transformers.models.clip",
|
|
57
|
-
"transformers.models.clipseg",
|
|
58
|
-
"transformers.models.clvp",
|
|
59
|
-
"transformers.models.code_llama",
|
|
60
|
-
"transformers.models.codegen",
|
|
61
|
-
"transformers.models.cohere",
|
|
62
|
-
"transformers.models.conditional_detr",
|
|
63
|
-
"transformers.models.convbert",
|
|
64
|
-
"transformers.models.convnext",
|
|
65
|
-
"transformers.models.convnextv2",
|
|
66
|
-
"transformers.models.cpm",
|
|
67
|
-
"transformers.models.cpmant",
|
|
68
|
-
"transformers.models.ctrl",
|
|
69
|
-
"transformers.models.cvt",
|
|
70
|
-
"transformers.models.data2vec",
|
|
71
|
-
"transformers.models.deberta",
|
|
72
|
-
"transformers.models.deberta_v2",
|
|
73
|
-
"transformers.models.decision_transformer",
|
|
74
|
-
"transformers.models.deformable_detr",
|
|
75
|
-
"transformers.models.deit",
|
|
76
|
-
"transformers.models.depth_anything",
|
|
77
|
-
"transformers.models.deta",
|
|
78
|
-
"transformers.models.detr",
|
|
79
|
-
"transformers.models.dinat",
|
|
80
|
-
"transformers.models.dinov2",
|
|
81
|
-
"transformers.models.distilbert",
|
|
82
|
-
"transformers.models.donut",
|
|
83
|
-
"transformers.models.dpr",
|
|
84
|
-
"transformers.models.dpt",
|
|
85
|
-
"transformers.models.efficientformer",
|
|
86
|
-
"transformers.models.efficientnet",
|
|
87
|
-
"transformers.models.electra",
|
|
88
|
-
"transformers.models.encodec",
|
|
89
|
-
"transformers.models.encoder_decoder",
|
|
90
|
-
"transformers.models.ernie",
|
|
91
|
-
"transformers.models.ernie_m",
|
|
92
|
-
"transformers.models.esm",
|
|
93
|
-
"transformers.models.falcon",
|
|
94
|
-
"transformers.models.fastspeech2_conformer",
|
|
95
|
-
"transformers.models.flaubert",
|
|
96
|
-
"transformers.models.flava",
|
|
97
|
-
"transformers.models.fnet",
|
|
98
|
-
"transformers.models.focalnet",
|
|
99
|
-
"transformers.models.fsmt",
|
|
100
|
-
"transformers.models.funnel",
|
|
101
|
-
"transformers.models.fuyu",
|
|
102
|
-
"transformers.models.gemma",
|
|
103
|
-
"transformers.models.git",
|
|
104
|
-
"transformers.models.glpn",
|
|
105
|
-
"transformers.models.gpt2",
|
|
106
|
-
"transformers.models.gpt_bigcode",
|
|
107
|
-
"transformers.models.gpt_neo",
|
|
108
|
-
"transformers.models.gpt_neox",
|
|
109
|
-
"transformers.models.gpt_neox_japanese",
|
|
110
|
-
"transformers.models.gpt_sw3",
|
|
111
|
-
"transformers.models.gptj",
|
|
112
|
-
"transformers.models.gptsan_japanese",
|
|
113
|
-
"transformers.models.graphormer",
|
|
114
|
-
"transformers.models.groupvit",
|
|
115
|
-
"transformers.models.herbert",
|
|
116
|
-
"transformers.models.hubert",
|
|
117
|
-
"transformers.models.ibert",
|
|
118
|
-
"transformers.models.idefics",
|
|
119
|
-
"transformers.models.imagegpt",
|
|
120
|
-
"transformers.models.informer",
|
|
121
|
-
"transformers.models.instructblip",
|
|
122
|
-
"transformers.models.jukebox",
|
|
123
|
-
"transformers.models.kosmos2",
|
|
124
|
-
"transformers.models.layoutlm",
|
|
125
|
-
"transformers.models.layoutlmv2",
|
|
126
|
-
"transformers.models.layoutlmv3",
|
|
127
|
-
"transformers.models.layoutxlm",
|
|
128
|
-
"transformers.models.led",
|
|
129
|
-
"transformers.models.levit",
|
|
130
|
-
"transformers.models.lilt",
|
|
131
|
-
"transformers.models.llama",
|
|
132
|
-
"transformers.models.llava",
|
|
133
|
-
"transformers.models.llava_next",
|
|
134
|
-
"transformers.models.longformer",
|
|
135
|
-
"transformers.models.longt5",
|
|
136
|
-
"transformers.models.luke",
|
|
137
|
-
"transformers.models.lxmert",
|
|
138
|
-
"transformers.models.m2m_100",
|
|
139
|
-
"transformers.models.mamba",
|
|
140
|
-
"transformers.models.marian",
|
|
141
|
-
"transformers.models.markuplm",
|
|
142
|
-
"transformers.models.mask2former",
|
|
143
|
-
"transformers.models.maskformer",
|
|
144
|
-
"transformers.models.mbart",
|
|
145
|
-
"transformers.models.mbart50",
|
|
146
|
-
"transformers.models.mctct",
|
|
147
|
-
"transformers.models.mega",
|
|
148
|
-
"transformers.models.megatron_bert",
|
|
149
|
-
"transformers.models.mgp_str",
|
|
150
|
-
"transformers.models.mistral",
|
|
151
|
-
"transformers.models.mixtral",
|
|
152
|
-
"transformers.models.mluke",
|
|
153
|
-
"transformers.models.mmbt",
|
|
154
|
-
"transformers.models.mobilebert",
|
|
155
|
-
"transformers.models.mobilenet_v1",
|
|
156
|
-
"transformers.models.mobilenet_v2",
|
|
157
|
-
"transformers.models.mobilevit",
|
|
158
|
-
"transformers.models.mobilevitv2",
|
|
159
|
-
"transformers.models.mpnet",
|
|
160
|
-
"transformers.models.mpt",
|
|
161
|
-
"transformers.models.mra",
|
|
162
|
-
"transformers.models.mt5",
|
|
163
|
-
"transformers.models.musicgen",
|
|
164
|
-
"transformers.models.musicgen_melody",
|
|
165
|
-
"transformers.models.mvp",
|
|
166
|
-
"transformers.models.nat",
|
|
167
|
-
"transformers.models.nezha",
|
|
168
|
-
"transformers.models.nllb",
|
|
169
|
-
"transformers.models.nllb_moe",
|
|
170
|
-
"transformers.models.nougat",
|
|
171
|
-
"transformers.models.nystromformer",
|
|
172
|
-
"transformers.models.oneformer",
|
|
173
|
-
"transformers.models.open_llama",
|
|
174
|
-
"transformers.models.openai",
|
|
175
|
-
"transformers.models.opt",
|
|
176
|
-
"transformers.models.owlv2",
|
|
177
|
-
"transformers.models.owlvit",
|
|
178
|
-
"transformers.models.patchtsmixer",
|
|
179
|
-
"transformers.models.patchtst",
|
|
180
|
-
"transformers.models.pegasus",
|
|
181
|
-
"transformers.models.pegasus_x",
|
|
182
|
-
"transformers.models.perceiver",
|
|
183
|
-
"transformers.models.persimmon",
|
|
184
|
-
"transformers.models.phi",
|
|
185
|
-
"transformers.models.phobert",
|
|
186
|
-
"transformers.models.pix2struct",
|
|
187
|
-
"transformers.models.plbart",
|
|
188
|
-
"transformers.models.poolformer",
|
|
189
|
-
"transformers.models.pop2piano",
|
|
190
|
-
"transformers.models.prophetnet",
|
|
191
|
-
"transformers.models.pvt",
|
|
192
|
-
"transformers.models.pvt_v2",
|
|
193
|
-
"transformers.models.qdqbert",
|
|
194
|
-
"transformers.models.qwen2",
|
|
195
|
-
"transformers.models.rag",
|
|
196
|
-
"transformers.models.realm",
|
|
197
|
-
"transformers.models.reformer",
|
|
198
|
-
"transformers.models.regnet",
|
|
199
|
-
"transformers.models.rembert",
|
|
200
|
-
"transformers.models.resnet",
|
|
201
|
-
"transformers.models.retribert",
|
|
202
|
-
"transformers.models.roberta",
|
|
203
|
-
"transformers.models.roberta_prelayernorm",
|
|
204
|
-
"transformers.models.roc_bert",
|
|
205
|
-
"transformers.models.roformer",
|
|
206
|
-
"transformers.models.rwkv",
|
|
207
|
-
"transformers.models.sam",
|
|
208
|
-
"transformers.models.seamless_m4t",
|
|
209
|
-
"transformers.models.seamless_m4t_v2",
|
|
210
|
-
"transformers.models.segformer",
|
|
211
|
-
"transformers.models.seggpt",
|
|
212
|
-
"transformers.models.sew",
|
|
213
|
-
"transformers.models.sew_d",
|
|
214
|
-
"transformers.models.siglip",
|
|
215
|
-
"transformers.models.speech_encoder_decoder",
|
|
216
|
-
"transformers.models.speech_to_text",
|
|
217
|
-
"transformers.models.speech_to_text_2",
|
|
218
|
-
"transformers.models.speecht5",
|
|
219
|
-
"transformers.models.splinter",
|
|
220
|
-
"transformers.models.squeezebert",
|
|
221
|
-
"transformers.models.stablelm",
|
|
222
|
-
"transformers.models.starcoder2",
|
|
223
|
-
"transformers.models.superpoint",
|
|
224
|
-
"transformers.models.swiftformer",
|
|
225
|
-
"transformers.models.swin",
|
|
226
|
-
"transformers.models.swin2sr",
|
|
227
|
-
"transformers.models.swinv2",
|
|
228
|
-
"transformers.models.switch_transformers",
|
|
229
|
-
"transformers.models.t5",
|
|
230
|
-
"transformers.models.table_transformer",
|
|
231
|
-
"transformers.models.tapas",
|
|
232
|
-
"transformers.models.tapex",
|
|
233
|
-
"transformers.models.time_series_transformer",
|
|
234
|
-
"transformers.models.timesformer",
|
|
235
|
-
"transformers.models.timm_backbone",
|
|
236
|
-
"transformers.models.trajectory_transformer",
|
|
237
|
-
"transformers.models.deprecated.mctct",
|
|
238
|
-
"transformers.models.deprecated.mmbt",
|
|
239
|
-
"transformers.models.deprecated.open_llama",
|
|
240
|
-
"transformers.models.deprecated.retribert",
|
|
241
|
-
"transformers.models.deprecated.tapex",
|
|
242
|
-
"transformers.models.deprecated.trajectory_transformer",
|
|
243
|
-
"transformers.models.deprecated.transfo_xl",
|
|
244
|
-
"transformers.models.deprecated.van",
|
|
245
|
-
"transformers.models.trocr",
|
|
246
|
-
"transformers.models.tvlt",
|
|
247
|
-
"transformers.models.tvp",
|
|
248
|
-
"transformers.models.udop",
|
|
249
|
-
"transformers.models.umt5",
|
|
250
|
-
"transformers.models.unispeech",
|
|
251
|
-
"transformers.models.unispeech_sat",
|
|
252
|
-
"transformers.models.univnet",
|
|
253
|
-
"transformers.models.upernet",
|
|
254
|
-
"transformers.models.van",
|
|
255
|
-
"transformers.models.videomae",
|
|
256
|
-
"transformers.models.vilt",
|
|
257
|
-
"transformers.models.vipllava",
|
|
258
|
-
"transformers.models.vision_encoder_decoder",
|
|
259
|
-
"transformers.models.vision_text_dual_encoder",
|
|
260
|
-
"transformers.models.visual_bert",
|
|
261
|
-
"transformers.models.vit",
|
|
262
|
-
"transformers.models.vit_hybrid",
|
|
263
|
-
"transformers.models.vit_mae",
|
|
264
|
-
"transformers.models.vit_msn",
|
|
265
|
-
"transformers.models.vitdet",
|
|
266
|
-
"transformers.models.vitmatte",
|
|
267
|
-
"transformers.models.vits",
|
|
268
|
-
"transformers.models.vivit",
|
|
269
|
-
"transformers.models.wav2vec2",
|
|
270
|
-
"transformers.models.wav2vec2_bert",
|
|
271
|
-
"transformers.models.wav2vec2_conformer",
|
|
272
|
-
"transformers.models.wav2vec2_phoneme",
|
|
273
|
-
"transformers.models.wav2vec2_with_lm",
|
|
274
|
-
"transformers.models.wavlm",
|
|
275
|
-
"transformers.models.whisper",
|
|
276
|
-
"transformers.models.x_clip",
|
|
277
|
-
"transformers.models.xglm",
|
|
278
|
-
"transformers.models.xlm",
|
|
279
|
-
"transformers.models.xlm_prophetnet",
|
|
280
|
-
"transformers.models.xlm_roberta",
|
|
281
|
-
"transformers.models.xlm_roberta_xl",
|
|
282
|
-
"transformers.models.xlnet",
|
|
283
|
-
"transformers.models.xmod",
|
|
284
|
-
"transformers.models.yolos",
|
|
285
|
-
"transformers.models.yoso",
|
|
286
|
-
"transformers.onnx",
|
|
287
|
-
"transformers.tools",
|
|
288
|
-
)
|
|
20
|
+
# Modules that have "_import_structure = {" definitions.
|
|
21
|
+
_import_structure_modules = set()
|
|
22
|
+
|
|
23
|
+
# Modules that have "define_import_structure(_file)" calls.
|
|
24
|
+
_define_structure_modules = {}
|
|
25
|
+
|
|
26
|
+
def onModuleUsageLookAhead(
|
|
27
|
+
self, module_name, module_filename, module_kind, get_module_source
|
|
28
|
+
):
|
|
29
|
+
if (
|
|
30
|
+
not module_name.hasNamespace("transformers")
|
|
31
|
+
or module_name == "transformers.utils.import_utils"
|
|
32
|
+
):
|
|
33
|
+
return
|
|
34
|
+
|
|
35
|
+
# Getting the source code will also trigger our modification
|
|
36
|
+
# and potentially tell us if any lazy loading applies.
|
|
37
|
+
source_code = get_module_source()
|
|
38
|
+
|
|
39
|
+
if source_code is None:
|
|
40
|
+
return
|
|
41
|
+
|
|
42
|
+
if "_import_structure = {" in source_code:
|
|
43
|
+
self._import_structure_modules.add(module_name)
|
|
44
|
+
|
|
45
|
+
def _getImportStructureDefinition(self, module_name, source_filename):
|
|
46
|
+
# TODO: Is caching is not needed, because it does that on
|
|
47
|
+
# its own?
|
|
48
|
+
import_structure_value = self.queryRuntimeInformationSingle(
|
|
49
|
+
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,
|
|
52
|
+
info_name="transformers_%s_import_structure" % module_name.asString(),
|
|
53
|
+
)
|
|
54
|
+
|
|
55
|
+
return import_structure_value
|
|
289
56
|
|
|
290
57
|
def getImplicitImports(self, module):
|
|
291
|
-
|
|
58
|
+
module_name = module.getFullName()
|
|
292
59
|
|
|
293
|
-
if
|
|
60
|
+
if module_name in self._import_structure_modules:
|
|
294
61
|
for sub_module_name in self.queryRuntimeInformationSingle(
|
|
295
|
-
setup_codes="import %s" %
|
|
62
|
+
setup_codes="import %s" % module_name.asString(),
|
|
296
63
|
value="list(getattr(%(module_name)s, '_import_structure', {}).keys())"
|
|
297
|
-
% {"module_name":
|
|
298
|
-
info_name="import_structure_for_%s" %
|
|
64
|
+
% {"module_name": module_name.asString()},
|
|
65
|
+
info_name="import_structure_for_%s" % module_name.asString(),
|
|
299
66
|
):
|
|
300
|
-
sub_module_name =
|
|
67
|
+
sub_module_name = module_name.getChildNamed(sub_module_name)
|
|
301
68
|
|
|
302
69
|
if (
|
|
303
70
|
sub_module_name == "transformers.testing_utils"
|
|
@@ -309,6 +76,34 @@ class NuitkaPluginTransformers(NuitkaPluginBase):
|
|
|
309
76
|
|
|
310
77
|
yield sub_module_name
|
|
311
78
|
|
|
79
|
+
if module_name in self._define_structure_modules:
|
|
80
|
+
for sub_module_name in self._define_structure_modules[module_name][
|
|
81
|
+
frozenset()
|
|
82
|
+
].keys():
|
|
83
|
+
yield module_name.getChildNamed(sub_module_name)
|
|
84
|
+
|
|
85
|
+
def onModuleSourceCode(self, module_name, source_filename, source_code):
|
|
86
|
+
if module_name.hasNamespace("transformers"):
|
|
87
|
+
if "define_import_structure(_file)" in source_code:
|
|
88
|
+
import_structure_value = self._getImportStructureDefinition(
|
|
89
|
+
module_name=module_name, source_filename=source_filename
|
|
90
|
+
)
|
|
91
|
+
|
|
92
|
+
# Frozenset does not transport as such, so we converted
|
|
93
|
+
# them to tuples and now back for compatibility.
|
|
94
|
+
import_structure_value = dict(
|
|
95
|
+
(frozenset(key), value)
|
|
96
|
+
for key, value in import_structure_value.items()
|
|
97
|
+
)
|
|
98
|
+
|
|
99
|
+
source_code = source_code.replace(
|
|
100
|
+
"define_import_structure(_file)", repr(import_structure_value)
|
|
101
|
+
)
|
|
102
|
+
|
|
103
|
+
self._define_structure_modules[module_name] = import_structure_value
|
|
104
|
+
|
|
105
|
+
return source_code
|
|
106
|
+
|
|
312
107
|
|
|
313
108
|
# Part of "Nuitka", an optimizing Python compiler that is compatible and
|
|
314
109
|
# integrates with CPython, but also works on its own.
|