Nuitka-winsvc 2.1.6__cp311-cp311-win_amd64.whl → 2.2.2__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.1.6.dist-info → Nuitka_winsvc-2.2.2.dist-info}/METADATA +1 -1
- {Nuitka_winsvc-2.1.6.dist-info → Nuitka_winsvc-2.2.2.dist-info}/RECORD +234 -225
- nuitka/Errors.py +4 -0
- nuitka/HardImportRegistry.py +18 -1
- nuitka/MainControl.py +27 -30
- nuitka/OptionParsing.py +32 -30
- nuitka/Options.py +26 -13
- nuitka/OutputDirectories.py +7 -4
- nuitka/PostProcessing.py +9 -7
- nuitka/Progress.py +3 -3
- nuitka/PythonVersions.py +2 -2
- nuitka/TreeXML.py +1 -1
- nuitka/Version.py +1 -1
- nuitka/build/Backend.scons +2 -1
- nuitka/build/DataComposerInterface.py +1 -0
- nuitka/build/Onefile.scons +2 -1
- nuitka/build/SconsCaching.py +64 -46
- nuitka/build/SconsCompilerSettings.py +19 -6
- nuitka/build/SconsHacks.py +0 -1
- nuitka/build/SconsInterface.py +84 -5
- nuitka/build/SconsProgress.py +0 -1
- nuitka/build/SconsUtils.py +8 -4
- nuitka/build/include/nuitka/allocator.h +8 -3
- nuitka/build/include/nuitka/compiled_cell.h +8 -0
- nuitka/build/include/nuitka/exceptions.h +554 -179
- nuitka/build/include/nuitka/helper/dictionaries.h +1 -1
- nuitka/build/include/nuitka/helper/import_hard.h +3 -0
- nuitka/build/include/nuitka/helper/ints.h +15 -2
- nuitka/build/include/nuitka/helper/lists.h +4 -1
- nuitka/build/include/nuitka/helper/raising.h +12 -0
- nuitka/build/include/nuitka/helper/tuples.h +5 -1
- nuitka/build/include/nuitka/helpers.h +4 -0
- nuitka/build/include/nuitka/importing.h +3 -4
- nuitka/build/include/nuitka/jit_sources.h +25 -0
- nuitka/build/include/nuitka/prelude.h +38 -11
- nuitka/build/include/nuitka/printing.h +3 -0
- nuitka/build/include/nuitka/threading.h +2 -6
- nuitka/build/include/nuitka/type_aliases.h +27 -0
- nuitka/build/inline_copy/pkg_resources/pkg_resources/__init__.py +0 -3
- nuitka/build/inline_copy/tqdm/tqdm/version.py +1 -4
- nuitka/build/static_src/CompiledAsyncgenType.c +99 -114
- nuitka/build/static_src/CompiledCodeHelpers.c +23 -14
- nuitka/build/static_src/CompiledCoroutineType.c +96 -114
- nuitka/build/static_src/CompiledFrameType.c +14 -11
- nuitka/build/static_src/CompiledFunctionType.c +34 -7
- nuitka/build/static_src/CompiledGeneratorType.c +248 -142
- nuitka/build/static_src/CompiledGeneratorTypeUncompiledIntegration.c +60 -70
- nuitka/build/static_src/CompiledMethodType.c +8 -7
- nuitka/build/static_src/HelpersAttributes.c +2 -19
- nuitka/build/static_src/HelpersBuiltin.c +2 -1
- nuitka/build/static_src/HelpersComparisonEq.c +32 -18
- nuitka/build/static_src/HelpersComparisonGe.c +50 -36
- nuitka/build/static_src/HelpersComparisonGt.c +50 -36
- nuitka/build/static_src/HelpersComparisonLe.c +50 -36
- nuitka/build/static_src/HelpersComparisonLt.c +50 -36
- nuitka/build/static_src/HelpersComparisonNe.c +32 -18
- nuitka/build/static_src/HelpersDeepcopy.c +6 -8
- nuitka/build/static_src/HelpersDictionaries.c +8 -3
- nuitka/build/static_src/HelpersExceptions.c +42 -28
- nuitka/build/static_src/HelpersFilesystemPaths.c +7 -7
- nuitka/build/static_src/HelpersImportHard.c +15 -0
- nuitka/build/static_src/HelpersJitSources.c +46 -0
- nuitka/build/static_src/HelpersLists.c +40 -0
- nuitka/build/static_src/HelpersOperationBinaryAdd.c +66 -66
- nuitka/build/static_src/HelpersOperationBinaryAddUtils.c +80 -33
- nuitka/build/static_src/HelpersOperationBinaryMultUtils.c +16 -13
- nuitka/build/static_src/HelpersOperationBinarySub.c +39 -39
- nuitka/build/static_src/HelpersOperationInplaceAdd.c +54 -54
- nuitka/build/static_src/HelpersOperationInplaceAddUtils.c +1 -1
- nuitka/build/static_src/HelpersOperationInplaceSub.c +50 -50
- nuitka/build/static_src/HelpersProfiling.c +3 -4
- nuitka/build/static_src/HelpersRaising.c +62 -1
- nuitka/build/static_src/HelpersStrings.c +203 -8
- nuitka/build/static_src/HelpersTypes.c +42 -0
- nuitka/build/static_src/MainProgram.c +1 -1
- nuitka/build/static_src/MetaPathBasedLoader.c +2 -1
- nuitka/build/static_src/OnefileBootstrap.c +3 -3
- nuitka/code_generation/BinaryOperationHelperDefinitions.py +5 -3
- nuitka/code_generation/BuiltinCodes.py +1 -0
- nuitka/code_generation/CodeGeneration.py +11 -0
- nuitka/code_generation/CodeHelpers.py +5 -3
- nuitka/code_generation/CodeObjectCodes.py +10 -6
- nuitka/code_generation/ComparisonCodes.py +19 -3
- nuitka/code_generation/ConstantCodes.py +5 -0
- nuitka/code_generation/Contexts.py +22 -6
- nuitka/code_generation/Emission.py +1 -0
- nuitka/code_generation/ErrorCodes.py +8 -16
- nuitka/code_generation/EvalCodes.py +5 -3
- nuitka/code_generation/ExceptionCodes.py +8 -1
- nuitka/code_generation/ExpressionCTypeSelectionHelpers.py +1 -0
- nuitka/code_generation/FrameCodes.py +5 -3
- nuitka/code_generation/FunctionCodes.py +0 -1
- nuitka/code_generation/GeneratorCodes.py +3 -3
- nuitka/code_generation/GlobalConstants.py +0 -2
- nuitka/code_generation/ImportCodes.py +2 -0
- nuitka/code_generation/JitCodes.py +44 -0
- nuitka/code_generation/ListCodes.py +11 -17
- nuitka/code_generation/MatchCodes.py +0 -1
- nuitka/code_generation/ModuleCodes.py +2 -1
- nuitka/code_generation/Namify.py +0 -1
- nuitka/code_generation/NetworkxCodes.py +51 -0
- nuitka/code_generation/OperationCodes.py +8 -6
- nuitka/code_generation/PackageResourceCodes.py +7 -5
- nuitka/code_generation/TensorflowCodes.py +54 -0
- nuitka/code_generation/TypeAliasCodes.py +71 -0
- nuitka/code_generation/VariableCodes.py +7 -5
- nuitka/code_generation/VariableDeclarations.py +1 -0
- nuitka/code_generation/c_types/CTypeCLongs.py +0 -1
- nuitka/code_generation/c_types/CTypeNuitkaInts.py +0 -1
- nuitka/code_generation/c_types/CTypeVoids.py +1 -0
- nuitka/code_generation/templates/CodeTemplatesConstants.py +14 -0
- nuitka/code_generation/templates/CodeTemplatesExceptions.py +1 -1
- nuitka/code_generation/templates/CodeTemplatesIterators.py +0 -1
- nuitka/code_generation/templates/CodeTemplatesLoader.py +0 -1
- nuitka/code_generation/templates/CodeTemplatesModules.py +9 -4
- nuitka/code_generation/templates/CodeTemplatesVariables.py +8 -8
- nuitka/code_generation/templates/TemplateDebugWrapper.py +0 -1
- nuitka/code_generation/templates_c/HelperOperationComparisonUnicode.c.j2 +4 -0
- nuitka/code_generation/templates_c/HelperSlotsLong.c.j2 +9 -7
- nuitka/containers/Namedtuples.py +0 -1
- nuitka/finalizations/Finalization.py +1 -0
- nuitka/finalizations/FinalizeMarkups.py +0 -1
- nuitka/freezer/DllDependenciesMacOS.py +60 -13
- nuitka/freezer/DllDependenciesPosix.py +0 -1
- nuitka/freezer/DllDependenciesWin32.py +2 -1
- nuitka/freezer/IncludedDataFiles.py +46 -15
- nuitka/freezer/IncludedEntryPoints.py +5 -3
- nuitka/freezer/Standalone.py +6 -1
- nuitka/importing/ImportCache.py +2 -2
- nuitka/importing/ImportResolving.py +80 -78
- nuitka/importing/Importing.py +34 -1
- nuitka/nodes/AttributeNodesGenerated.py +21 -6
- nuitka/nodes/BuiltinComplexNodes.py +1 -0
- nuitka/nodes/BuiltinFormatNodes.py +1 -0
- nuitka/nodes/BuiltinIteratorNodes.py +5 -3
- nuitka/nodes/BuiltinOperationNodeBasesGenerated.py +21 -6
- nuitka/nodes/BuiltinRefNodes.py +8 -1
- nuitka/nodes/BuiltinVarsNodes.py +0 -1
- nuitka/nodes/ChildrenHavingMixins.py +906 -186
- nuitka/nodes/CodeObjectSpecs.py +1 -1
- nuitka/nodes/ConditionalNodes.py +2 -6
- nuitka/nodes/ConstantRefNodes.py +38 -0
- nuitka/nodes/CtypesNodes.py +0 -1
- nuitka/nodes/DictionaryNodes.py +0 -1
- nuitka/nodes/ExceptionNodes.py +10 -0
- nuitka/nodes/ExpressionBases.py +15 -9
- nuitka/nodes/ExpressionBasesGenerated.py +32 -15
- nuitka/nodes/FunctionNodes.py +50 -5
- nuitka/nodes/HardImportNodesGenerated.py +245 -60
- nuitka/nodes/ImportHardNodes.py +27 -13
- nuitka/nodes/ImportNodes.py +92 -70
- nuitka/nodes/InjectCNodes.py +0 -1
- nuitka/nodes/ModuleNodes.py +10 -5
- nuitka/nodes/NetworkxNodes.py +45 -0
- nuitka/nodes/OperatorNodesUnary.py +1 -0
- nuitka/nodes/OsSysNodes.py +0 -1
- nuitka/nodes/PackageMetadataNodes.py +0 -1
- nuitka/nodes/PackageResourceNodes.py +10 -6
- nuitka/nodes/StatementBasesGenerated.py +107 -60
- nuitka/nodes/StringConcatenationNodes.py +1 -0
- nuitka/nodes/TensorflowNodes.py +38 -0
- nuitka/nodes/TypeNodes.py +21 -0
- nuitka/nodes/VariableRefNodes.py +1 -0
- nuitka/nodes/shapes/BuiltinTypeShapes.py +25 -15
- nuitka/optimizations/Optimization.py +7 -6
- nuitka/optimizations/OptimizeBuiltinCalls.py +11 -9
- nuitka/optimizations/Tags.py +0 -1
- nuitka/optimizations/TraceCollections.py +6 -55
- nuitka/optimizations/ValueTraces.py +49 -1
- nuitka/plugins/PluginBase.py +26 -4
- nuitka/plugins/Plugins.py +49 -12
- nuitka/plugins/standard/AntiBloatPlugin.py +12 -2
- nuitka/plugins/standard/ConsiderPyLintAnnotationsPlugin.py +0 -1
- nuitka/plugins/standard/DataFilesPlugin.py +2 -6
- nuitka/plugins/standard/DillPlugin.py +3 -3
- nuitka/plugins/standard/DllFilesPlugin.py +29 -23
- nuitka/plugins/standard/GiPlugin.py +1 -0
- nuitka/plugins/standard/ImplicitImports.py +8 -7
- nuitka/plugins/standard/MatplotlibPlugin.py +1 -0
- nuitka/plugins/standard/OptionsNannyPlugin.py +3 -7
- nuitka/plugins/standard/PkgResourcesPlugin.py +0 -1
- nuitka/plugins/standard/PmwPlugin.py +10 -9
- nuitka/plugins/standard/PySidePyQtPlugin.py +0 -28
- nuitka/plugins/standard/TensorflowPlugin.py +1 -0
- nuitka/plugins/standard/TorchPlugin.py +1 -0
- nuitka/plugins/standard/TrioPlugin.py +1 -0
- nuitka/plugins/standard/standard.nuitka-package.config.yml +249 -34
- nuitka/reports/CompilationReportReader.py +0 -1
- nuitka/reports/Reports.py +49 -5
- nuitka/specs/BuiltinParameterSpecs.py +10 -2
- nuitka/specs/BuiltinStrOperationSpecs.py +1 -1
- nuitka/specs/BuiltinTypeOperationSpecs.py +0 -1
- nuitka/specs/HardImportSpecs.py +34 -1
- nuitka/specs/ParameterSpecs.py +11 -9
- nuitka/tools/environments/Virtualenv.py +0 -1
- nuitka/tools/specialize/CTypeDescriptions.py +15 -11
- nuitka/tools/specialize/SpecializeC.py +11 -9
- nuitka/tools/specialize/SpecializePython.py +57 -30
- nuitka/tools/testing/Common.py +24 -7
- nuitka/tools/testing/OutputComparison.py +4 -0
- nuitka/tools/testing/Pythons.py +0 -1
- nuitka/tools/testing/compare_with_cpython/__main__.py +0 -4
- nuitka/tools/watch/GitHub.py +4 -1
- nuitka/tools/watch/__main__.py +22 -1
- nuitka/tree/Building.py +3 -0
- nuitka/tree/InternalModule.py +0 -1
- nuitka/tree/ReformulationAssertStatements.py +1 -0
- nuitka/tree/ReformulationAssignmentStatements.py +26 -3
- nuitka/tree/ReformulationClasses3.py +23 -26
- nuitka/tree/ReformulationContractionExpressions.py +5 -3
- nuitka/tree/ReformulationDictionaryCreation.py +6 -5
- nuitka/tree/ReformulationExecStatements.py +8 -6
- nuitka/tree/ReformulationFunctionStatements.py +10 -6
- nuitka/tree/SourceHandling.py +8 -0
- nuitka/tree/TreeHelpers.py +6 -3
- nuitka/utils/AppDirs.py +6 -2
- nuitka/utils/CStrings.py +1 -1
- nuitka/utils/CommandLineOptions.py +0 -1
- nuitka/utils/Distributions.py +3 -3
- nuitka/utils/Download.py +5 -1
- nuitka/utils/Execution.py +6 -3
- nuitka/utils/FileOperations.py +61 -34
- nuitka/utils/Importing.py +4 -4
- nuitka/utils/InstanceCounters.py +1 -0
- nuitka/utils/MacOSApp.py +1 -0
- nuitka/utils/Shebang.py +1 -0
- nuitka/utils/Utils.py +39 -1
- nuitka/utils/WindowsFileUsage.py +4 -3
- {Nuitka_winsvc-2.1.6.data → Nuitka_winsvc-2.2.2.data}/scripts/nuitka-run.bat +0 -0
- {Nuitka_winsvc-2.1.6.data → Nuitka_winsvc-2.2.2.data}/scripts/nuitka.bat +0 -0
- {Nuitka_winsvc-2.1.6.dist-info → Nuitka_winsvc-2.2.2.dist-info}/LICENSE.txt +0 -0
- {Nuitka_winsvc-2.1.6.dist-info → Nuitka_winsvc-2.2.2.dist-info}/WHEEL +0 -0
- {Nuitka_winsvc-2.1.6.dist-info → Nuitka_winsvc-2.2.2.dist-info}/entry_points.txt +0 -0
- {Nuitka_winsvc-2.1.6.dist-info → Nuitka_winsvc-2.2.2.dist-info}/top_level.txt +0 -0
|
@@ -2,18 +2,33 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
# We are not avoiding these in generated code at all
|
|
5
|
-
# pylint: disable=I0021,too-many-lines
|
|
6
|
-
# pylint: disable=I0021,
|
|
7
|
-
# pylint: disable=I0021,too-many-instance-attributes
|
|
8
|
-
# pylint: disable=I0021,too-many-return-statements
|
|
5
|
+
# pylint: disable=I0021,line-too-long,too-many-instance-attributes,too-many-lines
|
|
6
|
+
# pylint: disable=I0021,too-many-arguments,too-many-return-statements,too-many-statements
|
|
9
7
|
|
|
10
8
|
|
|
11
9
|
"""Children having mixins
|
|
12
10
|
|
|
13
11
|
WARNING, this code is GENERATED. Modify the template ChildrenHavingMixin.py.j2 instead!
|
|
14
12
|
|
|
15
|
-
spell-checker: ignore append
|
|
16
|
-
spell-checker: ignore
|
|
13
|
+
spell-checker: ignore __prepare__ append args autograph buffering capitalize casefold
|
|
14
|
+
spell-checker: ignore center chars clear closefd copy count decode default delete dist
|
|
15
|
+
spell-checker: ignore distribution_name encode encoding end endswith errors exit_code
|
|
16
|
+
spell-checker: ignore expandtabs experimental_attributes experimental_autograph_options
|
|
17
|
+
spell-checker: ignore experimental_compile experimental_follow_type_hints
|
|
18
|
+
spell-checker: ignore experimental_implements experimental_relax_shapes extend file
|
|
19
|
+
spell-checker: ignore fillchar find format format_map formatmap fromkeys func get group
|
|
20
|
+
spell-checker: ignore handle has_key haskey index input_signature insert isalnum isalpha
|
|
21
|
+
spell-checker: ignore isascii isdecimal isdigit isidentifier islower isnumeric isprintable
|
|
22
|
+
spell-checker: ignore isspace istitle isupper item items iterable iteritems iterkeys
|
|
23
|
+
spell-checker: ignore itervalues jit_compile join keepends key keys kwargs ljust lower
|
|
24
|
+
spell-checker: ignore lstrip maketrans maxsplit mode name new newline old opener p package
|
|
25
|
+
spell-checker: ignore package_or_requirement pairs partition path pop popitem prefix
|
|
26
|
+
spell-checker: ignore prepare reduce_retracing remove replace resource resource_name
|
|
27
|
+
spell-checker: ignore reverse rfind rindex rjust rpartition rsplit rstrip s sep setdefault
|
|
28
|
+
spell-checker: ignore sort split splitlines start startswith stop strip sub suffix
|
|
29
|
+
spell-checker: ignore swapcase table tabsize title translate update upper use_errno
|
|
30
|
+
spell-checker: ignore use_last_error value values viewitems viewkeys viewvalues width
|
|
31
|
+
spell-checker: ignore winmode zfill
|
|
17
32
|
"""
|
|
18
33
|
|
|
19
34
|
|
|
@@ -128,9 +143,9 @@ class ModuleChildrenHavingBodyOptionalStatementsOrNoneFunctionsTupleMixin(object
|
|
|
128
143
|
"""
|
|
129
144
|
|
|
130
145
|
values = {
|
|
131
|
-
"body":
|
|
132
|
-
|
|
133
|
-
|
|
146
|
+
"body": (
|
|
147
|
+
self.subnode_body.makeClone() if self.subnode_body is not None else None
|
|
148
|
+
),
|
|
134
149
|
"functions": tuple(v.makeClone() for v in self.subnode_functions),
|
|
135
150
|
}
|
|
136
151
|
|
|
@@ -333,9 +348,9 @@ class ChildHavingBodyOptionalMixin(object):
|
|
|
333
348
|
"""
|
|
334
349
|
|
|
335
350
|
values = {
|
|
336
|
-
"body":
|
|
337
|
-
|
|
338
|
-
|
|
351
|
+
"body": (
|
|
352
|
+
self.subnode_body.makeClone() if self.subnode_body is not None else None
|
|
353
|
+
),
|
|
339
354
|
}
|
|
340
355
|
|
|
341
356
|
values.update(self.getDetails())
|
|
@@ -4818,12 +4833,16 @@ class ChildrenHavingDefaultsTupleKwDefaultsOptionalAnnotationsOptionalFunctionRe
|
|
|
4818
4833
|
|
|
4819
4834
|
values = {
|
|
4820
4835
|
"defaults": tuple(v.makeClone() for v in self.subnode_defaults),
|
|
4821
|
-
"kw_defaults":
|
|
4822
|
-
|
|
4823
|
-
|
|
4824
|
-
|
|
4825
|
-
|
|
4826
|
-
|
|
4836
|
+
"kw_defaults": (
|
|
4837
|
+
self.subnode_kw_defaults.makeClone()
|
|
4838
|
+
if self.subnode_kw_defaults is not None
|
|
4839
|
+
else None
|
|
4840
|
+
),
|
|
4841
|
+
"annotations": (
|
|
4842
|
+
self.subnode_annotations.makeClone()
|
|
4843
|
+
if self.subnode_annotations is not None
|
|
4844
|
+
else None
|
|
4845
|
+
),
|
|
4827
4846
|
"function_ref": self.subnode_function_ref.makeClone(),
|
|
4828
4847
|
}
|
|
4829
4848
|
|
|
@@ -6235,9 +6254,11 @@ class ChildHavingExitCodeOptionalMixin(object):
|
|
|
6235
6254
|
"""
|
|
6236
6255
|
|
|
6237
6256
|
values = {
|
|
6238
|
-
"exit_code":
|
|
6239
|
-
|
|
6240
|
-
|
|
6257
|
+
"exit_code": (
|
|
6258
|
+
self.subnode_exit_code.makeClone()
|
|
6259
|
+
if self.subnode_exit_code is not None
|
|
6260
|
+
else None
|
|
6261
|
+
),
|
|
6241
6262
|
}
|
|
6242
6263
|
|
|
6243
6264
|
values.update(self.getDetails())
|
|
@@ -6857,12 +6878,16 @@ class ChildrenHavingExpressionLowerAutoNoneUpperAutoNoneMixin(object):
|
|
|
6857
6878
|
|
|
6858
6879
|
values = {
|
|
6859
6880
|
"expression": self.subnode_expression.makeClone(),
|
|
6860
|
-
"lower":
|
|
6861
|
-
|
|
6862
|
-
|
|
6863
|
-
|
|
6864
|
-
|
|
6865
|
-
|
|
6881
|
+
"lower": (
|
|
6882
|
+
self.subnode_lower.makeClone()
|
|
6883
|
+
if self.subnode_lower is not None
|
|
6884
|
+
else None
|
|
6885
|
+
),
|
|
6886
|
+
"upper": (
|
|
6887
|
+
self.subnode_upper.makeClone()
|
|
6888
|
+
if self.subnode_upper is not None
|
|
6889
|
+
else None
|
|
6890
|
+
),
|
|
6866
6891
|
}
|
|
6867
6892
|
|
|
6868
6893
|
values.update(self.getDetails())
|
|
@@ -7021,9 +7046,11 @@ class ChildrenHavingExpressionNameDefaultOptionalMixin(object):
|
|
|
7021
7046
|
values = {
|
|
7022
7047
|
"expression": self.subnode_expression.makeClone(),
|
|
7023
7048
|
"name": self.subnode_name.makeClone(),
|
|
7024
|
-
"default":
|
|
7025
|
-
|
|
7026
|
-
|
|
7049
|
+
"default": (
|
|
7050
|
+
self.subnode_default.makeClone()
|
|
7051
|
+
if self.subnode_default is not None
|
|
7052
|
+
else None
|
|
7053
|
+
),
|
|
7027
7054
|
}
|
|
7028
7055
|
|
|
7029
7056
|
values.update(self.getDetails())
|
|
@@ -7652,27 +7679,39 @@ class ChildrenHavingFileModeOptionalBufferingOptionalEncodingOptionalErrorsOptio
|
|
|
7652
7679
|
|
|
7653
7680
|
values = {
|
|
7654
7681
|
"file": self.subnode_file.makeClone(),
|
|
7655
|
-
"mode":
|
|
7656
|
-
|
|
7657
|
-
|
|
7658
|
-
"buffering":
|
|
7659
|
-
|
|
7660
|
-
|
|
7661
|
-
|
|
7662
|
-
|
|
7663
|
-
|
|
7664
|
-
|
|
7665
|
-
|
|
7666
|
-
|
|
7667
|
-
|
|
7668
|
-
|
|
7669
|
-
|
|
7670
|
-
|
|
7671
|
-
|
|
7672
|
-
|
|
7673
|
-
"
|
|
7674
|
-
|
|
7675
|
-
|
|
7682
|
+
"mode": (
|
|
7683
|
+
self.subnode_mode.makeClone() if self.subnode_mode is not None else None
|
|
7684
|
+
),
|
|
7685
|
+
"buffering": (
|
|
7686
|
+
self.subnode_buffering.makeClone()
|
|
7687
|
+
if self.subnode_buffering is not None
|
|
7688
|
+
else None
|
|
7689
|
+
),
|
|
7690
|
+
"encoding": (
|
|
7691
|
+
self.subnode_encoding.makeClone()
|
|
7692
|
+
if self.subnode_encoding is not None
|
|
7693
|
+
else None
|
|
7694
|
+
),
|
|
7695
|
+
"errors": (
|
|
7696
|
+
self.subnode_errors.makeClone()
|
|
7697
|
+
if self.subnode_errors is not None
|
|
7698
|
+
else None
|
|
7699
|
+
),
|
|
7700
|
+
"newline": (
|
|
7701
|
+
self.subnode_newline.makeClone()
|
|
7702
|
+
if self.subnode_newline is not None
|
|
7703
|
+
else None
|
|
7704
|
+
),
|
|
7705
|
+
"closefd": (
|
|
7706
|
+
self.subnode_closefd.makeClone()
|
|
7707
|
+
if self.subnode_closefd is not None
|
|
7708
|
+
else None
|
|
7709
|
+
),
|
|
7710
|
+
"opener": (
|
|
7711
|
+
self.subnode_opener.makeClone()
|
|
7712
|
+
if self.subnode_opener is not None
|
|
7713
|
+
else None
|
|
7714
|
+
),
|
|
7676
7715
|
}
|
|
7677
7716
|
|
|
7678
7717
|
values.update(self.getDetails())
|
|
@@ -7869,12 +7908,14 @@ class ChildrenHavingFilenameModeOptionalBufferingOptionalMixin(object):
|
|
|
7869
7908
|
|
|
7870
7909
|
values = {
|
|
7871
7910
|
"filename": self.subnode_filename.makeClone(),
|
|
7872
|
-
"mode":
|
|
7873
|
-
|
|
7874
|
-
|
|
7875
|
-
"buffering":
|
|
7876
|
-
|
|
7877
|
-
|
|
7911
|
+
"mode": (
|
|
7912
|
+
self.subnode_mode.makeClone() if self.subnode_mode is not None else None
|
|
7913
|
+
),
|
|
7914
|
+
"buffering": (
|
|
7915
|
+
self.subnode_buffering.makeClone()
|
|
7916
|
+
if self.subnode_buffering is not None
|
|
7917
|
+
else None
|
|
7918
|
+
),
|
|
7878
7919
|
}
|
|
7879
7920
|
|
|
7880
7921
|
values.update(self.getDetails())
|
|
@@ -8145,27 +8186,39 @@ class ChildrenHavingFilenameModeOptionalBufferingOptionalEncodingOptionalErrorsO
|
|
|
8145
8186
|
|
|
8146
8187
|
values = {
|
|
8147
8188
|
"filename": self.subnode_filename.makeClone(),
|
|
8148
|
-
"mode":
|
|
8149
|
-
|
|
8150
|
-
|
|
8151
|
-
"buffering":
|
|
8152
|
-
|
|
8153
|
-
|
|
8154
|
-
|
|
8155
|
-
|
|
8156
|
-
|
|
8157
|
-
|
|
8158
|
-
|
|
8159
|
-
|
|
8160
|
-
|
|
8161
|
-
|
|
8162
|
-
|
|
8163
|
-
|
|
8164
|
-
|
|
8165
|
-
|
|
8166
|
-
"
|
|
8167
|
-
|
|
8168
|
-
|
|
8189
|
+
"mode": (
|
|
8190
|
+
self.subnode_mode.makeClone() if self.subnode_mode is not None else None
|
|
8191
|
+
),
|
|
8192
|
+
"buffering": (
|
|
8193
|
+
self.subnode_buffering.makeClone()
|
|
8194
|
+
if self.subnode_buffering is not None
|
|
8195
|
+
else None
|
|
8196
|
+
),
|
|
8197
|
+
"encoding": (
|
|
8198
|
+
self.subnode_encoding.makeClone()
|
|
8199
|
+
if self.subnode_encoding is not None
|
|
8200
|
+
else None
|
|
8201
|
+
),
|
|
8202
|
+
"errors": (
|
|
8203
|
+
self.subnode_errors.makeClone()
|
|
8204
|
+
if self.subnode_errors is not None
|
|
8205
|
+
else None
|
|
8206
|
+
),
|
|
8207
|
+
"newline": (
|
|
8208
|
+
self.subnode_newline.makeClone()
|
|
8209
|
+
if self.subnode_newline is not None
|
|
8210
|
+
else None
|
|
8211
|
+
),
|
|
8212
|
+
"closefd": (
|
|
8213
|
+
self.subnode_closefd.makeClone()
|
|
8214
|
+
if self.subnode_closefd is not None
|
|
8215
|
+
else None
|
|
8216
|
+
),
|
|
8217
|
+
"opener": (
|
|
8218
|
+
self.subnode_opener.makeClone()
|
|
8219
|
+
if self.subnode_opener is not None
|
|
8220
|
+
else None
|
|
8221
|
+
),
|
|
8169
8222
|
}
|
|
8170
8223
|
|
|
8171
8224
|
values.update(self.getDetails())
|
|
@@ -8269,6 +8322,479 @@ class ChildrenHavingFilenameModeOptionalBufferingOptionalEncodingOptionalErrorsO
|
|
|
8269
8322
|
ChildrenExpressionBuiltinOpenP3Mixin = ChildrenHavingFilenameModeOptionalBufferingOptionalEncodingOptionalErrorsOptionalNewlineOptionalClosefdOptionalOpenerOptionalMixin
|
|
8270
8323
|
|
|
8271
8324
|
|
|
8325
|
+
class ChildrenHavingFuncOptionalInputSignatureOptionalAutographOptionalJitCompileOptionalReduceRetracingOptionalExperimentalImplementsOptionalExperimentalAutographOptionsOptionalExperimentalAttributesOptionalExperimentalRelaxShapesOptionalExperimentalCompileOptionalExperimentalFollowTypeHintsOptionalMixin(
|
|
8326
|
+
object
|
|
8327
|
+
):
|
|
8328
|
+
# Mixins are not allowed to specify slots, pylint: disable=assigning-non-slot
|
|
8329
|
+
__slots__ = ()
|
|
8330
|
+
|
|
8331
|
+
# This is generated for use in
|
|
8332
|
+
# ExpressionTensorflowFunction
|
|
8333
|
+
# ExpressionTensorflowFunctionCall
|
|
8334
|
+
|
|
8335
|
+
def __init__(
|
|
8336
|
+
self,
|
|
8337
|
+
func,
|
|
8338
|
+
input_signature,
|
|
8339
|
+
autograph,
|
|
8340
|
+
jit_compile,
|
|
8341
|
+
reduce_retracing,
|
|
8342
|
+
experimental_implements,
|
|
8343
|
+
experimental_autograph_options,
|
|
8344
|
+
experimental_attributes,
|
|
8345
|
+
experimental_relax_shapes,
|
|
8346
|
+
experimental_compile,
|
|
8347
|
+
experimental_follow_type_hints,
|
|
8348
|
+
):
|
|
8349
|
+
if func is not None:
|
|
8350
|
+
func.parent = self
|
|
8351
|
+
|
|
8352
|
+
self.subnode_func = func
|
|
8353
|
+
|
|
8354
|
+
if input_signature is not None:
|
|
8355
|
+
input_signature.parent = self
|
|
8356
|
+
|
|
8357
|
+
self.subnode_input_signature = input_signature
|
|
8358
|
+
|
|
8359
|
+
if autograph is not None:
|
|
8360
|
+
autograph.parent = self
|
|
8361
|
+
|
|
8362
|
+
self.subnode_autograph = autograph
|
|
8363
|
+
|
|
8364
|
+
if jit_compile is not None:
|
|
8365
|
+
jit_compile.parent = self
|
|
8366
|
+
|
|
8367
|
+
self.subnode_jit_compile = jit_compile
|
|
8368
|
+
|
|
8369
|
+
if reduce_retracing is not None:
|
|
8370
|
+
reduce_retracing.parent = self
|
|
8371
|
+
|
|
8372
|
+
self.subnode_reduce_retracing = reduce_retracing
|
|
8373
|
+
|
|
8374
|
+
if experimental_implements is not None:
|
|
8375
|
+
experimental_implements.parent = self
|
|
8376
|
+
|
|
8377
|
+
self.subnode_experimental_implements = experimental_implements
|
|
8378
|
+
|
|
8379
|
+
if experimental_autograph_options is not None:
|
|
8380
|
+
experimental_autograph_options.parent = self
|
|
8381
|
+
|
|
8382
|
+
self.subnode_experimental_autograph_options = experimental_autograph_options
|
|
8383
|
+
|
|
8384
|
+
if experimental_attributes is not None:
|
|
8385
|
+
experimental_attributes.parent = self
|
|
8386
|
+
|
|
8387
|
+
self.subnode_experimental_attributes = experimental_attributes
|
|
8388
|
+
|
|
8389
|
+
if experimental_relax_shapes is not None:
|
|
8390
|
+
experimental_relax_shapes.parent = self
|
|
8391
|
+
|
|
8392
|
+
self.subnode_experimental_relax_shapes = experimental_relax_shapes
|
|
8393
|
+
|
|
8394
|
+
if experimental_compile is not None:
|
|
8395
|
+
experimental_compile.parent = self
|
|
8396
|
+
|
|
8397
|
+
self.subnode_experimental_compile = experimental_compile
|
|
8398
|
+
|
|
8399
|
+
if experimental_follow_type_hints is not None:
|
|
8400
|
+
experimental_follow_type_hints.parent = self
|
|
8401
|
+
|
|
8402
|
+
self.subnode_experimental_follow_type_hints = experimental_follow_type_hints
|
|
8403
|
+
|
|
8404
|
+
def getVisitableNodes(self):
|
|
8405
|
+
"""The visitable nodes, with tuple values flattened."""
|
|
8406
|
+
|
|
8407
|
+
result = []
|
|
8408
|
+
value = self.subnode_func
|
|
8409
|
+
if value is None:
|
|
8410
|
+
pass
|
|
8411
|
+
else:
|
|
8412
|
+
result.append(value)
|
|
8413
|
+
value = self.subnode_input_signature
|
|
8414
|
+
if value is None:
|
|
8415
|
+
pass
|
|
8416
|
+
else:
|
|
8417
|
+
result.append(value)
|
|
8418
|
+
value = self.subnode_autograph
|
|
8419
|
+
if value is None:
|
|
8420
|
+
pass
|
|
8421
|
+
else:
|
|
8422
|
+
result.append(value)
|
|
8423
|
+
value = self.subnode_jit_compile
|
|
8424
|
+
if value is None:
|
|
8425
|
+
pass
|
|
8426
|
+
else:
|
|
8427
|
+
result.append(value)
|
|
8428
|
+
value = self.subnode_reduce_retracing
|
|
8429
|
+
if value is None:
|
|
8430
|
+
pass
|
|
8431
|
+
else:
|
|
8432
|
+
result.append(value)
|
|
8433
|
+
value = self.subnode_experimental_implements
|
|
8434
|
+
if value is None:
|
|
8435
|
+
pass
|
|
8436
|
+
else:
|
|
8437
|
+
result.append(value)
|
|
8438
|
+
value = self.subnode_experimental_autograph_options
|
|
8439
|
+
if value is None:
|
|
8440
|
+
pass
|
|
8441
|
+
else:
|
|
8442
|
+
result.append(value)
|
|
8443
|
+
value = self.subnode_experimental_attributes
|
|
8444
|
+
if value is None:
|
|
8445
|
+
pass
|
|
8446
|
+
else:
|
|
8447
|
+
result.append(value)
|
|
8448
|
+
value = self.subnode_experimental_relax_shapes
|
|
8449
|
+
if value is None:
|
|
8450
|
+
pass
|
|
8451
|
+
else:
|
|
8452
|
+
result.append(value)
|
|
8453
|
+
value = self.subnode_experimental_compile
|
|
8454
|
+
if value is None:
|
|
8455
|
+
pass
|
|
8456
|
+
else:
|
|
8457
|
+
result.append(value)
|
|
8458
|
+
value = self.subnode_experimental_follow_type_hints
|
|
8459
|
+
if value is None:
|
|
8460
|
+
pass
|
|
8461
|
+
else:
|
|
8462
|
+
result.append(value)
|
|
8463
|
+
return tuple(result)
|
|
8464
|
+
|
|
8465
|
+
def getVisitableNodesNamed(self):
|
|
8466
|
+
"""Named children dictionary.
|
|
8467
|
+
|
|
8468
|
+
For use in cloning nodes, debugging and XML output.
|
|
8469
|
+
"""
|
|
8470
|
+
|
|
8471
|
+
return (
|
|
8472
|
+
("func", self.subnode_func),
|
|
8473
|
+
("input_signature", self.subnode_input_signature),
|
|
8474
|
+
("autograph", self.subnode_autograph),
|
|
8475
|
+
("jit_compile", self.subnode_jit_compile),
|
|
8476
|
+
("reduce_retracing", self.subnode_reduce_retracing),
|
|
8477
|
+
("experimental_implements", self.subnode_experimental_implements),
|
|
8478
|
+
(
|
|
8479
|
+
"experimental_autograph_options",
|
|
8480
|
+
self.subnode_experimental_autograph_options,
|
|
8481
|
+
),
|
|
8482
|
+
("experimental_attributes", self.subnode_experimental_attributes),
|
|
8483
|
+
("experimental_relax_shapes", self.subnode_experimental_relax_shapes),
|
|
8484
|
+
("experimental_compile", self.subnode_experimental_compile),
|
|
8485
|
+
(
|
|
8486
|
+
"experimental_follow_type_hints",
|
|
8487
|
+
self.subnode_experimental_follow_type_hints,
|
|
8488
|
+
),
|
|
8489
|
+
)
|
|
8490
|
+
|
|
8491
|
+
def replaceChild(self, old_node, new_node):
|
|
8492
|
+
value = self.subnode_func
|
|
8493
|
+
if old_node is value:
|
|
8494
|
+
if new_node is not None:
|
|
8495
|
+
new_node.parent = self
|
|
8496
|
+
|
|
8497
|
+
self.subnode_func = new_node
|
|
8498
|
+
|
|
8499
|
+
return
|
|
8500
|
+
|
|
8501
|
+
value = self.subnode_input_signature
|
|
8502
|
+
if old_node is value:
|
|
8503
|
+
if new_node is not None:
|
|
8504
|
+
new_node.parent = self
|
|
8505
|
+
|
|
8506
|
+
self.subnode_input_signature = new_node
|
|
8507
|
+
|
|
8508
|
+
return
|
|
8509
|
+
|
|
8510
|
+
value = self.subnode_autograph
|
|
8511
|
+
if old_node is value:
|
|
8512
|
+
if new_node is not None:
|
|
8513
|
+
new_node.parent = self
|
|
8514
|
+
|
|
8515
|
+
self.subnode_autograph = new_node
|
|
8516
|
+
|
|
8517
|
+
return
|
|
8518
|
+
|
|
8519
|
+
value = self.subnode_jit_compile
|
|
8520
|
+
if old_node is value:
|
|
8521
|
+
if new_node is not None:
|
|
8522
|
+
new_node.parent = self
|
|
8523
|
+
|
|
8524
|
+
self.subnode_jit_compile = new_node
|
|
8525
|
+
|
|
8526
|
+
return
|
|
8527
|
+
|
|
8528
|
+
value = self.subnode_reduce_retracing
|
|
8529
|
+
if old_node is value:
|
|
8530
|
+
if new_node is not None:
|
|
8531
|
+
new_node.parent = self
|
|
8532
|
+
|
|
8533
|
+
self.subnode_reduce_retracing = new_node
|
|
8534
|
+
|
|
8535
|
+
return
|
|
8536
|
+
|
|
8537
|
+
value = self.subnode_experimental_implements
|
|
8538
|
+
if old_node is value:
|
|
8539
|
+
if new_node is not None:
|
|
8540
|
+
new_node.parent = self
|
|
8541
|
+
|
|
8542
|
+
self.subnode_experimental_implements = new_node
|
|
8543
|
+
|
|
8544
|
+
return
|
|
8545
|
+
|
|
8546
|
+
value = self.subnode_experimental_autograph_options
|
|
8547
|
+
if old_node is value:
|
|
8548
|
+
if new_node is not None:
|
|
8549
|
+
new_node.parent = self
|
|
8550
|
+
|
|
8551
|
+
self.subnode_experimental_autograph_options = new_node
|
|
8552
|
+
|
|
8553
|
+
return
|
|
8554
|
+
|
|
8555
|
+
value = self.subnode_experimental_attributes
|
|
8556
|
+
if old_node is value:
|
|
8557
|
+
if new_node is not None:
|
|
8558
|
+
new_node.parent = self
|
|
8559
|
+
|
|
8560
|
+
self.subnode_experimental_attributes = new_node
|
|
8561
|
+
|
|
8562
|
+
return
|
|
8563
|
+
|
|
8564
|
+
value = self.subnode_experimental_relax_shapes
|
|
8565
|
+
if old_node is value:
|
|
8566
|
+
if new_node is not None:
|
|
8567
|
+
new_node.parent = self
|
|
8568
|
+
|
|
8569
|
+
self.subnode_experimental_relax_shapes = new_node
|
|
8570
|
+
|
|
8571
|
+
return
|
|
8572
|
+
|
|
8573
|
+
value = self.subnode_experimental_compile
|
|
8574
|
+
if old_node is value:
|
|
8575
|
+
if new_node is not None:
|
|
8576
|
+
new_node.parent = self
|
|
8577
|
+
|
|
8578
|
+
self.subnode_experimental_compile = new_node
|
|
8579
|
+
|
|
8580
|
+
return
|
|
8581
|
+
|
|
8582
|
+
value = self.subnode_experimental_follow_type_hints
|
|
8583
|
+
if old_node is value:
|
|
8584
|
+
if new_node is not None:
|
|
8585
|
+
new_node.parent = self
|
|
8586
|
+
|
|
8587
|
+
self.subnode_experimental_follow_type_hints = new_node
|
|
8588
|
+
|
|
8589
|
+
return
|
|
8590
|
+
|
|
8591
|
+
raise AssertionError("Didn't find child", old_node, "in", self)
|
|
8592
|
+
|
|
8593
|
+
def getCloneArgs(self):
|
|
8594
|
+
"""Get clones of all children to pass for a new node.
|
|
8595
|
+
|
|
8596
|
+
Needs to make clones of child nodes too.
|
|
8597
|
+
"""
|
|
8598
|
+
|
|
8599
|
+
values = {
|
|
8600
|
+
"func": (
|
|
8601
|
+
self.subnode_func.makeClone() if self.subnode_func is not None else None
|
|
8602
|
+
),
|
|
8603
|
+
"input_signature": (
|
|
8604
|
+
self.subnode_input_signature.makeClone()
|
|
8605
|
+
if self.subnode_input_signature is not None
|
|
8606
|
+
else None
|
|
8607
|
+
),
|
|
8608
|
+
"autograph": (
|
|
8609
|
+
self.subnode_autograph.makeClone()
|
|
8610
|
+
if self.subnode_autograph is not None
|
|
8611
|
+
else None
|
|
8612
|
+
),
|
|
8613
|
+
"jit_compile": (
|
|
8614
|
+
self.subnode_jit_compile.makeClone()
|
|
8615
|
+
if self.subnode_jit_compile is not None
|
|
8616
|
+
else None
|
|
8617
|
+
),
|
|
8618
|
+
"reduce_retracing": (
|
|
8619
|
+
self.subnode_reduce_retracing.makeClone()
|
|
8620
|
+
if self.subnode_reduce_retracing is not None
|
|
8621
|
+
else None
|
|
8622
|
+
),
|
|
8623
|
+
"experimental_implements": (
|
|
8624
|
+
self.subnode_experimental_implements.makeClone()
|
|
8625
|
+
if self.subnode_experimental_implements is not None
|
|
8626
|
+
else None
|
|
8627
|
+
),
|
|
8628
|
+
"experimental_autograph_options": (
|
|
8629
|
+
self.subnode_experimental_autograph_options.makeClone()
|
|
8630
|
+
if self.subnode_experimental_autograph_options is not None
|
|
8631
|
+
else None
|
|
8632
|
+
),
|
|
8633
|
+
"experimental_attributes": (
|
|
8634
|
+
self.subnode_experimental_attributes.makeClone()
|
|
8635
|
+
if self.subnode_experimental_attributes is not None
|
|
8636
|
+
else None
|
|
8637
|
+
),
|
|
8638
|
+
"experimental_relax_shapes": (
|
|
8639
|
+
self.subnode_experimental_relax_shapes.makeClone()
|
|
8640
|
+
if self.subnode_experimental_relax_shapes is not None
|
|
8641
|
+
else None
|
|
8642
|
+
),
|
|
8643
|
+
"experimental_compile": (
|
|
8644
|
+
self.subnode_experimental_compile.makeClone()
|
|
8645
|
+
if self.subnode_experimental_compile is not None
|
|
8646
|
+
else None
|
|
8647
|
+
),
|
|
8648
|
+
"experimental_follow_type_hints": (
|
|
8649
|
+
self.subnode_experimental_follow_type_hints.makeClone()
|
|
8650
|
+
if self.subnode_experimental_follow_type_hints is not None
|
|
8651
|
+
else None
|
|
8652
|
+
),
|
|
8653
|
+
}
|
|
8654
|
+
|
|
8655
|
+
values.update(self.getDetails())
|
|
8656
|
+
|
|
8657
|
+
return values
|
|
8658
|
+
|
|
8659
|
+
def finalize(self):
|
|
8660
|
+
del self.parent
|
|
8661
|
+
|
|
8662
|
+
if self.subnode_func is not None:
|
|
8663
|
+
self.subnode_func.finalize()
|
|
8664
|
+
del self.subnode_func
|
|
8665
|
+
if self.subnode_input_signature is not None:
|
|
8666
|
+
self.subnode_input_signature.finalize()
|
|
8667
|
+
del self.subnode_input_signature
|
|
8668
|
+
if self.subnode_autograph is not None:
|
|
8669
|
+
self.subnode_autograph.finalize()
|
|
8670
|
+
del self.subnode_autograph
|
|
8671
|
+
if self.subnode_jit_compile is not None:
|
|
8672
|
+
self.subnode_jit_compile.finalize()
|
|
8673
|
+
del self.subnode_jit_compile
|
|
8674
|
+
if self.subnode_reduce_retracing is not None:
|
|
8675
|
+
self.subnode_reduce_retracing.finalize()
|
|
8676
|
+
del self.subnode_reduce_retracing
|
|
8677
|
+
if self.subnode_experimental_implements is not None:
|
|
8678
|
+
self.subnode_experimental_implements.finalize()
|
|
8679
|
+
del self.subnode_experimental_implements
|
|
8680
|
+
if self.subnode_experimental_autograph_options is not None:
|
|
8681
|
+
self.subnode_experimental_autograph_options.finalize()
|
|
8682
|
+
del self.subnode_experimental_autograph_options
|
|
8683
|
+
if self.subnode_experimental_attributes is not None:
|
|
8684
|
+
self.subnode_experimental_attributes.finalize()
|
|
8685
|
+
del self.subnode_experimental_attributes
|
|
8686
|
+
if self.subnode_experimental_relax_shapes is not None:
|
|
8687
|
+
self.subnode_experimental_relax_shapes.finalize()
|
|
8688
|
+
del self.subnode_experimental_relax_shapes
|
|
8689
|
+
if self.subnode_experimental_compile is not None:
|
|
8690
|
+
self.subnode_experimental_compile.finalize()
|
|
8691
|
+
del self.subnode_experimental_compile
|
|
8692
|
+
if self.subnode_experimental_follow_type_hints is not None:
|
|
8693
|
+
self.subnode_experimental_follow_type_hints.finalize()
|
|
8694
|
+
del self.subnode_experimental_follow_type_hints
|
|
8695
|
+
|
|
8696
|
+
def computeExpressionRaw(self, trace_collection):
|
|
8697
|
+
"""Compute an expression.
|
|
8698
|
+
|
|
8699
|
+
Default behavior is to just visit the child expressions first, and
|
|
8700
|
+
then the node "computeExpression". For a few cases this needs to
|
|
8701
|
+
be overloaded, e.g. conditional expressions.
|
|
8702
|
+
"""
|
|
8703
|
+
|
|
8704
|
+
# First apply the sub-expressions, as they are evaluated before
|
|
8705
|
+
# the actual operation.
|
|
8706
|
+
for count, sub_expression in enumerate(self.getVisitableNodes()):
|
|
8707
|
+
expression = trace_collection.onExpression(sub_expression)
|
|
8708
|
+
|
|
8709
|
+
if expression.willRaiseAnyException():
|
|
8710
|
+
sub_expressions = self.getVisitableNodes()
|
|
8711
|
+
|
|
8712
|
+
wrapped_expression = wrapExpressionWithSideEffects(
|
|
8713
|
+
side_effects=sub_expressions[:count],
|
|
8714
|
+
old_node=sub_expression,
|
|
8715
|
+
new_node=expression,
|
|
8716
|
+
)
|
|
8717
|
+
|
|
8718
|
+
return (
|
|
8719
|
+
wrapped_expression,
|
|
8720
|
+
"new_raise",
|
|
8721
|
+
lambda: "For '%s' the child expression '%s' will raise."
|
|
8722
|
+
% (self.getChildNameNice(), expression.getChildNameNice()),
|
|
8723
|
+
)
|
|
8724
|
+
|
|
8725
|
+
# Then ask ourselves to work on it.
|
|
8726
|
+
return self.computeExpression(trace_collection)
|
|
8727
|
+
|
|
8728
|
+
def collectVariableAccesses(self, emit_read, emit_write):
|
|
8729
|
+
"""Collect variable reads and writes of child nodes."""
|
|
8730
|
+
|
|
8731
|
+
subnode_func = self.subnode_func
|
|
8732
|
+
|
|
8733
|
+
if subnode_func is not None:
|
|
8734
|
+
self.subnode_func.collectVariableAccesses(emit_read, emit_write)
|
|
8735
|
+
subnode_input_signature = self.subnode_input_signature
|
|
8736
|
+
|
|
8737
|
+
if subnode_input_signature is not None:
|
|
8738
|
+
self.subnode_input_signature.collectVariableAccesses(emit_read, emit_write)
|
|
8739
|
+
subnode_autograph = self.subnode_autograph
|
|
8740
|
+
|
|
8741
|
+
if subnode_autograph is not None:
|
|
8742
|
+
self.subnode_autograph.collectVariableAccesses(emit_read, emit_write)
|
|
8743
|
+
subnode_jit_compile = self.subnode_jit_compile
|
|
8744
|
+
|
|
8745
|
+
if subnode_jit_compile is not None:
|
|
8746
|
+
self.subnode_jit_compile.collectVariableAccesses(emit_read, emit_write)
|
|
8747
|
+
subnode_reduce_retracing = self.subnode_reduce_retracing
|
|
8748
|
+
|
|
8749
|
+
if subnode_reduce_retracing is not None:
|
|
8750
|
+
self.subnode_reduce_retracing.collectVariableAccesses(emit_read, emit_write)
|
|
8751
|
+
subnode_experimental_implements = self.subnode_experimental_implements
|
|
8752
|
+
|
|
8753
|
+
if subnode_experimental_implements is not None:
|
|
8754
|
+
self.subnode_experimental_implements.collectVariableAccesses(
|
|
8755
|
+
emit_read, emit_write
|
|
8756
|
+
)
|
|
8757
|
+
subnode_experimental_autograph_options = (
|
|
8758
|
+
self.subnode_experimental_autograph_options
|
|
8759
|
+
)
|
|
8760
|
+
|
|
8761
|
+
if subnode_experimental_autograph_options is not None:
|
|
8762
|
+
self.subnode_experimental_autograph_options.collectVariableAccesses(
|
|
8763
|
+
emit_read, emit_write
|
|
8764
|
+
)
|
|
8765
|
+
subnode_experimental_attributes = self.subnode_experimental_attributes
|
|
8766
|
+
|
|
8767
|
+
if subnode_experimental_attributes is not None:
|
|
8768
|
+
self.subnode_experimental_attributes.collectVariableAccesses(
|
|
8769
|
+
emit_read, emit_write
|
|
8770
|
+
)
|
|
8771
|
+
subnode_experimental_relax_shapes = self.subnode_experimental_relax_shapes
|
|
8772
|
+
|
|
8773
|
+
if subnode_experimental_relax_shapes is not None:
|
|
8774
|
+
self.subnode_experimental_relax_shapes.collectVariableAccesses(
|
|
8775
|
+
emit_read, emit_write
|
|
8776
|
+
)
|
|
8777
|
+
subnode_experimental_compile = self.subnode_experimental_compile
|
|
8778
|
+
|
|
8779
|
+
if subnode_experimental_compile is not None:
|
|
8780
|
+
self.subnode_experimental_compile.collectVariableAccesses(
|
|
8781
|
+
emit_read, emit_write
|
|
8782
|
+
)
|
|
8783
|
+
subnode_experimental_follow_type_hints = (
|
|
8784
|
+
self.subnode_experimental_follow_type_hints
|
|
8785
|
+
)
|
|
8786
|
+
|
|
8787
|
+
if subnode_experimental_follow_type_hints is not None:
|
|
8788
|
+
self.subnode_experimental_follow_type_hints.collectVariableAccesses(
|
|
8789
|
+
emit_read, emit_write
|
|
8790
|
+
)
|
|
8791
|
+
|
|
8792
|
+
|
|
8793
|
+
# Assign the names that are easier to import with a stable name.
|
|
8794
|
+
ChildrenExpressionTensorflowFunctionMixin = ChildrenHavingFuncOptionalInputSignatureOptionalAutographOptionalJitCompileOptionalReduceRetracingOptionalExperimentalImplementsOptionalExperimentalAutographOptionsOptionalExperimentalAttributesOptionalExperimentalRelaxShapesOptionalExperimentalCompileOptionalExperimentalFollowTypeHintsOptionalMixin
|
|
8795
|
+
ChildrenExpressionTensorflowFunctionCallMixin = ChildrenHavingFuncOptionalInputSignatureOptionalAutographOptionalJitCompileOptionalReduceRetracingOptionalExperimentalImplementsOptionalExperimentalAutographOptionsOptionalExperimentalAttributesOptionalExperimentalRelaxShapesOptionalExperimentalCompileOptionalExperimentalFollowTypeHintsOptionalMixin
|
|
8796
|
+
|
|
8797
|
+
|
|
8272
8798
|
class ChildrenHavingFunctionValuesTupleMixin(object):
|
|
8273
8799
|
# Mixins are not allowed to specify slots, pylint: disable=assigning-non-slot
|
|
8274
8800
|
__slots__ = ()
|
|
@@ -8567,9 +9093,9 @@ class ChildrenHavingGroupNameOptionalMixin(object):
|
|
|
8567
9093
|
|
|
8568
9094
|
values = {
|
|
8569
9095
|
"group": self.subnode_group.makeClone(),
|
|
8570
|
-
"name":
|
|
8571
|
-
|
|
8572
|
-
|
|
9096
|
+
"name": (
|
|
9097
|
+
self.subnode_name.makeClone() if self.subnode_name is not None else None
|
|
9098
|
+
),
|
|
8573
9099
|
}
|
|
8574
9100
|
|
|
8575
9101
|
values.update(self.getDetails())
|
|
@@ -9468,13 +9994,17 @@ class ChildrenHavingKwDefaultsOptionalDefaultsTupleAnnotationsOptionalFunctionRe
|
|
|
9468
9994
|
"""
|
|
9469
9995
|
|
|
9470
9996
|
values = {
|
|
9471
|
-
"kw_defaults":
|
|
9472
|
-
|
|
9473
|
-
|
|
9997
|
+
"kw_defaults": (
|
|
9998
|
+
self.subnode_kw_defaults.makeClone()
|
|
9999
|
+
if self.subnode_kw_defaults is not None
|
|
10000
|
+
else None
|
|
10001
|
+
),
|
|
9474
10002
|
"defaults": tuple(v.makeClone() for v in self.subnode_defaults),
|
|
9475
|
-
"annotations":
|
|
9476
|
-
|
|
9477
|
-
|
|
10003
|
+
"annotations": (
|
|
10004
|
+
self.subnode_annotations.makeClone()
|
|
10005
|
+
if self.subnode_annotations is not None
|
|
10006
|
+
else None
|
|
10007
|
+
),
|
|
9478
10008
|
"function_ref": self.subnode_function_ref.makeClone(),
|
|
9479
10009
|
}
|
|
9480
10010
|
|
|
@@ -10328,9 +10858,9 @@ class ChildrenHavingListArgKeyOptionalReverseMixin(object):
|
|
|
10328
10858
|
|
|
10329
10859
|
values = {
|
|
10330
10860
|
"list_arg": self.subnode_list_arg.makeClone(),
|
|
10331
|
-
"key":
|
|
10332
|
-
|
|
10333
|
-
|
|
10861
|
+
"key": (
|
|
10862
|
+
self.subnode_key.makeClone() if self.subnode_key is not None else None
|
|
10863
|
+
),
|
|
10334
10864
|
"reverse": self.subnode_reverse.makeClone(),
|
|
10335
10865
|
}
|
|
10336
10866
|
|
|
@@ -11552,18 +12082,26 @@ class ChildrenHavingNameGlobalsArgOptionalLocalsArgOptionalFromlistOptionalLevel
|
|
|
11552
12082
|
|
|
11553
12083
|
values = {
|
|
11554
12084
|
"name": self.subnode_name.makeClone(),
|
|
11555
|
-
"globals_arg":
|
|
11556
|
-
|
|
11557
|
-
|
|
11558
|
-
|
|
11559
|
-
|
|
11560
|
-
|
|
11561
|
-
|
|
11562
|
-
|
|
11563
|
-
|
|
11564
|
-
|
|
11565
|
-
|
|
11566
|
-
|
|
12085
|
+
"globals_arg": (
|
|
12086
|
+
self.subnode_globals_arg.makeClone()
|
|
12087
|
+
if self.subnode_globals_arg is not None
|
|
12088
|
+
else None
|
|
12089
|
+
),
|
|
12090
|
+
"locals_arg": (
|
|
12091
|
+
self.subnode_locals_arg.makeClone()
|
|
12092
|
+
if self.subnode_locals_arg is not None
|
|
12093
|
+
else None
|
|
12094
|
+
),
|
|
12095
|
+
"fromlist": (
|
|
12096
|
+
self.subnode_fromlist.makeClone()
|
|
12097
|
+
if self.subnode_fromlist is not None
|
|
12098
|
+
else None
|
|
12099
|
+
),
|
|
12100
|
+
"level": (
|
|
12101
|
+
self.subnode_level.makeClone()
|
|
12102
|
+
if self.subnode_level is not None
|
|
12103
|
+
else None
|
|
12104
|
+
),
|
|
11567
12105
|
}
|
|
11568
12106
|
|
|
11569
12107
|
values.update(self.getDetails())
|
|
@@ -11783,18 +12321,24 @@ class ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLastErrorOp
|
|
|
11783
12321
|
|
|
11784
12322
|
values = {
|
|
11785
12323
|
"name": self.subnode_name.makeClone(),
|
|
11786
|
-
"mode":
|
|
11787
|
-
|
|
11788
|
-
|
|
11789
|
-
"handle":
|
|
11790
|
-
|
|
11791
|
-
|
|
11792
|
-
|
|
11793
|
-
|
|
11794
|
-
|
|
11795
|
-
|
|
11796
|
-
|
|
11797
|
-
|
|
12324
|
+
"mode": (
|
|
12325
|
+
self.subnode_mode.makeClone() if self.subnode_mode is not None else None
|
|
12326
|
+
),
|
|
12327
|
+
"handle": (
|
|
12328
|
+
self.subnode_handle.makeClone()
|
|
12329
|
+
if self.subnode_handle is not None
|
|
12330
|
+
else None
|
|
12331
|
+
),
|
|
12332
|
+
"use_errno": (
|
|
12333
|
+
self.subnode_use_errno.makeClone()
|
|
12334
|
+
if self.subnode_use_errno is not None
|
|
12335
|
+
else None
|
|
12336
|
+
),
|
|
12337
|
+
"use_last_error": (
|
|
12338
|
+
self.subnode_use_last_error.makeClone()
|
|
12339
|
+
if self.subnode_use_last_error is not None
|
|
12340
|
+
else None
|
|
12341
|
+
),
|
|
11798
12342
|
}
|
|
11799
12343
|
|
|
11800
12344
|
values.update(self.getDetails())
|
|
@@ -12035,21 +12579,29 @@ class ChildrenHavingNameModeOptionalHandleOptionalUseErrnoOptionalUseLastErrorOp
|
|
|
12035
12579
|
|
|
12036
12580
|
values = {
|
|
12037
12581
|
"name": self.subnode_name.makeClone(),
|
|
12038
|
-
"mode":
|
|
12039
|
-
|
|
12040
|
-
|
|
12041
|
-
"handle":
|
|
12042
|
-
|
|
12043
|
-
|
|
12044
|
-
|
|
12045
|
-
|
|
12046
|
-
|
|
12047
|
-
|
|
12048
|
-
|
|
12049
|
-
|
|
12050
|
-
|
|
12051
|
-
|
|
12052
|
-
|
|
12582
|
+
"mode": (
|
|
12583
|
+
self.subnode_mode.makeClone() if self.subnode_mode is not None else None
|
|
12584
|
+
),
|
|
12585
|
+
"handle": (
|
|
12586
|
+
self.subnode_handle.makeClone()
|
|
12587
|
+
if self.subnode_handle is not None
|
|
12588
|
+
else None
|
|
12589
|
+
),
|
|
12590
|
+
"use_errno": (
|
|
12591
|
+
self.subnode_use_errno.makeClone()
|
|
12592
|
+
if self.subnode_use_errno is not None
|
|
12593
|
+
else None
|
|
12594
|
+
),
|
|
12595
|
+
"use_last_error": (
|
|
12596
|
+
self.subnode_use_last_error.makeClone()
|
|
12597
|
+
if self.subnode_use_last_error is not None
|
|
12598
|
+
else None
|
|
12599
|
+
),
|
|
12600
|
+
"winmode": (
|
|
12601
|
+
self.subnode_winmode.makeClone()
|
|
12602
|
+
if self.subnode_winmode is not None
|
|
12603
|
+
else None
|
|
12604
|
+
),
|
|
12053
12605
|
}
|
|
12054
12606
|
|
|
12055
12607
|
values.update(self.getDetails())
|
|
@@ -12211,9 +12763,11 @@ class ChildrenHavingNamePackageOptionalMixin(object):
|
|
|
12211
12763
|
|
|
12212
12764
|
values = {
|
|
12213
12765
|
"name": self.subnode_name.makeClone(),
|
|
12214
|
-
"package":
|
|
12215
|
-
|
|
12216
|
-
|
|
12766
|
+
"package": (
|
|
12767
|
+
self.subnode_package.makeClone()
|
|
12768
|
+
if self.subnode_package is not None
|
|
12769
|
+
else None
|
|
12770
|
+
),
|
|
12217
12771
|
}
|
|
12218
12772
|
|
|
12219
12773
|
values.update(self.getDetails())
|
|
@@ -12820,12 +13374,16 @@ class ChildrenHavingPackageResourceEncodingOptionalErrorsOptionalMixin(object):
|
|
|
12820
13374
|
values = {
|
|
12821
13375
|
"package": self.subnode_package.makeClone(),
|
|
12822
13376
|
"resource": self.subnode_resource.makeClone(),
|
|
12823
|
-
"encoding":
|
|
12824
|
-
|
|
12825
|
-
|
|
12826
|
-
|
|
12827
|
-
|
|
12828
|
-
|
|
13377
|
+
"encoding": (
|
|
13378
|
+
self.subnode_encoding.makeClone()
|
|
13379
|
+
if self.subnode_encoding is not None
|
|
13380
|
+
else None
|
|
13381
|
+
),
|
|
13382
|
+
"errors": (
|
|
13383
|
+
self.subnode_errors.makeClone()
|
|
13384
|
+
if self.subnode_errors is not None
|
|
13385
|
+
else None
|
|
13386
|
+
),
|
|
12829
13387
|
}
|
|
12830
13388
|
|
|
12831
13389
|
values.update(self.getDetails())
|
|
@@ -13436,9 +13994,9 @@ class ChildHavingPathOptionalMixin(object):
|
|
|
13436
13994
|
"""
|
|
13437
13995
|
|
|
13438
13996
|
values = {
|
|
13439
|
-
"path":
|
|
13440
|
-
|
|
13441
|
-
|
|
13997
|
+
"path": (
|
|
13998
|
+
self.subnode_path.makeClone() if self.subnode_path is not None else None
|
|
13999
|
+
),
|
|
13442
14000
|
}
|
|
13443
14001
|
|
|
13444
14002
|
values.update(self.getDetails())
|
|
@@ -13569,9 +14127,11 @@ class ChildrenHavingPosArgOptionalPairsTupleMixin(object):
|
|
|
13569
14127
|
"""
|
|
13570
14128
|
|
|
13571
14129
|
values = {
|
|
13572
|
-
"pos_arg":
|
|
13573
|
-
|
|
13574
|
-
|
|
14130
|
+
"pos_arg": (
|
|
14131
|
+
self.subnode_pos_arg.makeClone()
|
|
14132
|
+
if self.subnode_pos_arg is not None
|
|
14133
|
+
else None
|
|
14134
|
+
),
|
|
13575
14135
|
"pairs": tuple(v.makeClone() for v in self.subnode_pairs),
|
|
13576
14136
|
}
|
|
13577
14137
|
|
|
@@ -13707,9 +14267,9 @@ class ChildrenHavingRealOptionalImagMixin(object):
|
|
|
13707
14267
|
"""
|
|
13708
14268
|
|
|
13709
14269
|
values = {
|
|
13710
|
-
"real":
|
|
13711
|
-
|
|
13712
|
-
|
|
14270
|
+
"real": (
|
|
14271
|
+
self.subnode_real.makeClone() if self.subnode_real is not None else None
|
|
14272
|
+
),
|
|
13713
14273
|
"imag": self.subnode_imag.makeClone(),
|
|
13714
14274
|
}
|
|
13715
14275
|
|
|
@@ -14707,15 +15267,21 @@ class ChildrenHavingSourceFilenameModeFlagsOptionalDontInheritOptionalOptimizeOp
|
|
|
14707
15267
|
"source": self.subnode_source.makeClone(),
|
|
14708
15268
|
"filename": self.subnode_filename.makeClone(),
|
|
14709
15269
|
"mode": self.subnode_mode.makeClone(),
|
|
14710
|
-
"flags":
|
|
14711
|
-
|
|
14712
|
-
|
|
14713
|
-
|
|
14714
|
-
|
|
14715
|
-
|
|
14716
|
-
|
|
14717
|
-
|
|
14718
|
-
|
|
15270
|
+
"flags": (
|
|
15271
|
+
self.subnode_flags.makeClone()
|
|
15272
|
+
if self.subnode_flags is not None
|
|
15273
|
+
else None
|
|
15274
|
+
),
|
|
15275
|
+
"dont_inherit": (
|
|
15276
|
+
self.subnode_dont_inherit.makeClone()
|
|
15277
|
+
if self.subnode_dont_inherit is not None
|
|
15278
|
+
else None
|
|
15279
|
+
),
|
|
15280
|
+
"optimize": (
|
|
15281
|
+
self.subnode_optimize.makeClone()
|
|
15282
|
+
if self.subnode_optimize is not None
|
|
15283
|
+
else None
|
|
15284
|
+
),
|
|
14719
15285
|
}
|
|
14720
15286
|
|
|
14721
15287
|
values.update(self.getDetails())
|
|
@@ -15048,9 +15614,11 @@ class ChildrenHavingSourceCodeGlobalsArgLocalsArgClosureOptionalMixin(object):
|
|
|
15048
15614
|
"source_code": self.subnode_source_code.makeClone(),
|
|
15049
15615
|
"globals_arg": self.subnode_globals_arg.makeClone(),
|
|
15050
15616
|
"locals_arg": self.subnode_locals_arg.makeClone(),
|
|
15051
|
-
"closure":
|
|
15052
|
-
|
|
15053
|
-
|
|
15617
|
+
"closure": (
|
|
15618
|
+
self.subnode_closure.makeClone()
|
|
15619
|
+
if self.subnode_closure is not None
|
|
15620
|
+
else None
|
|
15621
|
+
),
|
|
15054
15622
|
}
|
|
15055
15623
|
|
|
15056
15624
|
values.update(self.getDetails())
|
|
@@ -18958,12 +19526,16 @@ class ChildrenHavingStringEncodingOptionalErrorsOptionalMixin(object):
|
|
|
18958
19526
|
|
|
18959
19527
|
values = {
|
|
18960
19528
|
"string": self.subnode_string.makeClone(),
|
|
18961
|
-
"encoding":
|
|
18962
|
-
|
|
18963
|
-
|
|
18964
|
-
|
|
18965
|
-
|
|
18966
|
-
|
|
19529
|
+
"encoding": (
|
|
19530
|
+
self.subnode_encoding.makeClone()
|
|
19531
|
+
if self.subnode_encoding is not None
|
|
19532
|
+
else None
|
|
19533
|
+
),
|
|
19534
|
+
"errors": (
|
|
19535
|
+
self.subnode_errors.makeClone()
|
|
19536
|
+
if self.subnode_errors is not None
|
|
19537
|
+
else None
|
|
19538
|
+
),
|
|
18967
19539
|
}
|
|
18968
19540
|
|
|
18969
19541
|
values.update(self.getDetails())
|
|
@@ -19218,12 +19790,14 @@ class ChildrenHavingTypeArgArgsOptionalKwargsOptionalMixin(object):
|
|
|
19218
19790
|
|
|
19219
19791
|
values = {
|
|
19220
19792
|
"type_arg": self.subnode_type_arg.makeClone(),
|
|
19221
|
-
"args":
|
|
19222
|
-
|
|
19223
|
-
|
|
19224
|
-
"kwargs":
|
|
19225
|
-
|
|
19226
|
-
|
|
19793
|
+
"args": (
|
|
19794
|
+
self.subnode_args.makeClone() if self.subnode_args is not None else None
|
|
19795
|
+
),
|
|
19796
|
+
"kwargs": (
|
|
19797
|
+
self.subnode_kwargs.makeClone()
|
|
19798
|
+
if self.subnode_kwargs is not None
|
|
19799
|
+
else None
|
|
19800
|
+
),
|
|
19227
19801
|
}
|
|
19228
19802
|
|
|
19229
19803
|
values.update(self.getDetails())
|
|
@@ -19563,6 +20137,142 @@ class ChildrenHavingTypeNameBasesDictArgMixin(object):
|
|
|
19563
20137
|
ChildrenExpressionBuiltinType3Mixin = ChildrenHavingTypeNameBasesDictArgMixin
|
|
19564
20138
|
|
|
19565
20139
|
|
|
20140
|
+
class ChildrenHavingTypeParamsTupleComputeValueMixin(object):
|
|
20141
|
+
# Mixins are not allowed to specify slots, pylint: disable=assigning-non-slot
|
|
20142
|
+
__slots__ = ()
|
|
20143
|
+
|
|
20144
|
+
# This is generated for use in
|
|
20145
|
+
# ExpressionTypeAlias
|
|
20146
|
+
|
|
20147
|
+
def __init__(
|
|
20148
|
+
self,
|
|
20149
|
+
type_params,
|
|
20150
|
+
compute_value,
|
|
20151
|
+
):
|
|
20152
|
+
assert type(type_params) is tuple
|
|
20153
|
+
|
|
20154
|
+
for val in type_params:
|
|
20155
|
+
val.parent = self
|
|
20156
|
+
|
|
20157
|
+
self.subnode_type_params = type_params
|
|
20158
|
+
|
|
20159
|
+
compute_value.parent = self
|
|
20160
|
+
|
|
20161
|
+
self.subnode_compute_value = compute_value
|
|
20162
|
+
|
|
20163
|
+
def getVisitableNodes(self):
|
|
20164
|
+
"""The visitable nodes, with tuple values flattened."""
|
|
20165
|
+
|
|
20166
|
+
result = []
|
|
20167
|
+
result.extend(self.subnode_type_params)
|
|
20168
|
+
result.append(self.subnode_compute_value)
|
|
20169
|
+
return tuple(result)
|
|
20170
|
+
|
|
20171
|
+
def getVisitableNodesNamed(self):
|
|
20172
|
+
"""Named children dictionary.
|
|
20173
|
+
|
|
20174
|
+
For use in cloning nodes, debugging and XML output.
|
|
20175
|
+
"""
|
|
20176
|
+
|
|
20177
|
+
return (
|
|
20178
|
+
("type_params", self.subnode_type_params),
|
|
20179
|
+
("compute_value", self.subnode_compute_value),
|
|
20180
|
+
)
|
|
20181
|
+
|
|
20182
|
+
def replaceChild(self, old_node, new_node):
|
|
20183
|
+
value = self.subnode_type_params
|
|
20184
|
+
if old_node in value:
|
|
20185
|
+
if new_node is not None:
|
|
20186
|
+
new_node.parent = self
|
|
20187
|
+
|
|
20188
|
+
self.subnode_type_params = tuple(
|
|
20189
|
+
(val if val is not old_node else new_node) for val in value
|
|
20190
|
+
)
|
|
20191
|
+
else:
|
|
20192
|
+
self.subnode_type_params = tuple(
|
|
20193
|
+
val for val in value if val is not old_node
|
|
20194
|
+
)
|
|
20195
|
+
|
|
20196
|
+
return
|
|
20197
|
+
|
|
20198
|
+
value = self.subnode_compute_value
|
|
20199
|
+
if old_node is value:
|
|
20200
|
+
new_node.parent = self
|
|
20201
|
+
|
|
20202
|
+
self.subnode_compute_value = new_node
|
|
20203
|
+
|
|
20204
|
+
return
|
|
20205
|
+
|
|
20206
|
+
raise AssertionError("Didn't find child", old_node, "in", self)
|
|
20207
|
+
|
|
20208
|
+
def getCloneArgs(self):
|
|
20209
|
+
"""Get clones of all children to pass for a new node.
|
|
20210
|
+
|
|
20211
|
+
Needs to make clones of child nodes too.
|
|
20212
|
+
"""
|
|
20213
|
+
|
|
20214
|
+
values = {
|
|
20215
|
+
"type_params": tuple(v.makeClone() for v in self.subnode_type_params),
|
|
20216
|
+
"compute_value": self.subnode_compute_value.makeClone(),
|
|
20217
|
+
}
|
|
20218
|
+
|
|
20219
|
+
values.update(self.getDetails())
|
|
20220
|
+
|
|
20221
|
+
return values
|
|
20222
|
+
|
|
20223
|
+
def finalize(self):
|
|
20224
|
+
del self.parent
|
|
20225
|
+
|
|
20226
|
+
for c in self.subnode_type_params:
|
|
20227
|
+
c.finalize()
|
|
20228
|
+
del self.subnode_type_params
|
|
20229
|
+
self.subnode_compute_value.finalize()
|
|
20230
|
+
del self.subnode_compute_value
|
|
20231
|
+
|
|
20232
|
+
def computeExpressionRaw(self, trace_collection):
|
|
20233
|
+
"""Compute an expression.
|
|
20234
|
+
|
|
20235
|
+
Default behavior is to just visit the child expressions first, and
|
|
20236
|
+
then the node "computeExpression". For a few cases this needs to
|
|
20237
|
+
be overloaded, e.g. conditional expressions.
|
|
20238
|
+
"""
|
|
20239
|
+
|
|
20240
|
+
# First apply the sub-expressions, as they are evaluated before
|
|
20241
|
+
# the actual operation.
|
|
20242
|
+
for count, sub_expression in enumerate(self.getVisitableNodes()):
|
|
20243
|
+
expression = trace_collection.onExpression(sub_expression)
|
|
20244
|
+
|
|
20245
|
+
if expression.willRaiseAnyException():
|
|
20246
|
+
sub_expressions = self.getVisitableNodes()
|
|
20247
|
+
|
|
20248
|
+
wrapped_expression = wrapExpressionWithSideEffects(
|
|
20249
|
+
side_effects=sub_expressions[:count],
|
|
20250
|
+
old_node=sub_expression,
|
|
20251
|
+
new_node=expression,
|
|
20252
|
+
)
|
|
20253
|
+
|
|
20254
|
+
return (
|
|
20255
|
+
wrapped_expression,
|
|
20256
|
+
"new_raise",
|
|
20257
|
+
lambda: "For '%s' the child expression '%s' will raise."
|
|
20258
|
+
% (self.getChildNameNice(), expression.getChildNameNice()),
|
|
20259
|
+
)
|
|
20260
|
+
|
|
20261
|
+
# Then ask ourselves to work on it.
|
|
20262
|
+
return self.computeExpression(trace_collection)
|
|
20263
|
+
|
|
20264
|
+
def collectVariableAccesses(self, emit_read, emit_write):
|
|
20265
|
+
"""Collect variable reads and writes of child nodes."""
|
|
20266
|
+
|
|
20267
|
+
for element in self.subnode_type_params:
|
|
20268
|
+
element.collectVariableAccesses(emit_read, emit_write)
|
|
20269
|
+
self.subnode_compute_value.collectVariableAccesses(emit_read, emit_write)
|
|
20270
|
+
|
|
20271
|
+
|
|
20272
|
+
# Assign the names that are easier to import with a stable name.
|
|
20273
|
+
ChildrenExpressionTypeAliasMixin = ChildrenHavingTypeParamsTupleComputeValueMixin
|
|
20274
|
+
|
|
20275
|
+
|
|
19566
20276
|
class ChildHavingValueMixin(object):
|
|
19567
20277
|
# Mixins are not allowed to specify slots, pylint: disable=assigning-non-slot
|
|
19568
20278
|
__slots__ = ()
|
|
@@ -19794,9 +20504,11 @@ class ChildrenHavingValueOptionalBaseMixin(object):
|
|
|
19794
20504
|
"""
|
|
19795
20505
|
|
|
19796
20506
|
values = {
|
|
19797
|
-
"value":
|
|
19798
|
-
|
|
19799
|
-
|
|
20507
|
+
"value": (
|
|
20508
|
+
self.subnode_value.makeClone()
|
|
20509
|
+
if self.subnode_value is not None
|
|
20510
|
+
else None
|
|
20511
|
+
),
|
|
19800
20512
|
"base": self.subnode_base.makeClone(),
|
|
19801
20513
|
}
|
|
19802
20514
|
|
|
@@ -19960,15 +20672,21 @@ class ChildrenHavingValueOptionalEncodingOptionalErrorsOptionalMixin(object):
|
|
|
19960
20672
|
"""
|
|
19961
20673
|
|
|
19962
20674
|
values = {
|
|
19963
|
-
"value":
|
|
19964
|
-
|
|
19965
|
-
|
|
19966
|
-
|
|
19967
|
-
|
|
19968
|
-
|
|
19969
|
-
|
|
19970
|
-
|
|
19971
|
-
|
|
20675
|
+
"value": (
|
|
20676
|
+
self.subnode_value.makeClone()
|
|
20677
|
+
if self.subnode_value is not None
|
|
20678
|
+
else None
|
|
20679
|
+
),
|
|
20680
|
+
"encoding": (
|
|
20681
|
+
self.subnode_encoding.makeClone()
|
|
20682
|
+
if self.subnode_encoding is not None
|
|
20683
|
+
else None
|
|
20684
|
+
),
|
|
20685
|
+
"errors": (
|
|
20686
|
+
self.subnode_errors.makeClone()
|
|
20687
|
+
if self.subnode_errors is not None
|
|
20688
|
+
else None
|
|
20689
|
+
),
|
|
19972
20690
|
}
|
|
19973
20691
|
|
|
19974
20692
|
values.update(self.getDetails())
|
|
@@ -20123,9 +20841,11 @@ class ChildrenHavingValueFormatSpecOptionalAutoNoneEmptyStrMixin(object):
|
|
|
20123
20841
|
|
|
20124
20842
|
values = {
|
|
20125
20843
|
"value": self.subnode_value.makeClone(),
|
|
20126
|
-
"format_spec":
|
|
20127
|
-
|
|
20128
|
-
|
|
20844
|
+
"format_spec": (
|
|
20845
|
+
self.subnode_format_spec.makeClone()
|
|
20846
|
+
if self.subnode_format_spec is not None
|
|
20847
|
+
else None
|
|
20848
|
+
),
|
|
20129
20849
|
}
|
|
20130
20850
|
|
|
20131
20851
|
values.update(self.getDetails())
|