Nuitka-winsvc 1.6.6__cp310-cp310-win_amd64.whl → 1.7.5__cp310-cp310-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.
- {Nuitka_winsvc-1.6.6.dist-info → Nuitka_winsvc-1.7.5.dist-info}/METADATA +1 -1
- {Nuitka_winsvc-1.6.6.dist-info → Nuitka_winsvc-1.7.5.dist-info}/RECORD +84 -81
- nuitka/Builtins.py +7 -1
- nuitka/MainControl.py +4 -0
- nuitka/OptionParsing.py +5 -3
- nuitka/Options.py +17 -2
- nuitka/Serialization.py +28 -5
- nuitka/Version.py +2 -2
- nuitka/build/Backend.scons +16 -3
- nuitka/build/CCompilerVersion.scons +1 -1
- nuitka/build/DataComposerInterface.py +15 -9
- nuitka/build/Onefile.scons +1 -1
- nuitka/build/SconsCompilerSettings.py +1 -0
- nuitka/build/SconsProgress.py +11 -2
- nuitka/build/SconsSpawn.py +15 -15
- nuitka/build/include/nuitka/builtins.h +2 -0
- nuitka/build/include/nuitka/filesystem_paths.h +4 -0
- nuitka/build/include/nuitka/helper/attributes.h +3 -0
- nuitka/build/include/nuitka/helper/import_hard.h +6 -0
- nuitka/build/include/nuitka/helpers.h +1 -1
- nuitka/build/include/nuitka/safe_string_ops.h +10 -3
- nuitka/build/static_src/CompiledCodeHelpers.c +0 -200
- nuitka/build/static_src/HelpersAttributes.c +185 -8
- nuitka/build/static_src/HelpersFilesystemPaths.c +528 -7
- nuitka/build/static_src/HelpersImportHard.c +38 -0
- nuitka/build/static_src/HelpersSafeStrings.c +6 -278
- nuitka/build/static_src/MainProgram.c +273 -73
- nuitka/build/static_src/MetaPathBasedLoaderResourceReaderFiles.c +6 -0
- nuitka/build/static_src/OnefileBootstrap.c +19 -36
- nuitka/build/static_src/OnefileSplashScreen.cpp +1 -0
- nuitka/code_generation/AttributeCodes.py +42 -23
- nuitka/code_generation/CodeGeneration.py +4 -0
- nuitka/code_generation/FunctionCodes.py +18 -3
- nuitka/code_generation/GlobalConstants.py +8 -1
- nuitka/code_generation/PackageResourceCodes.py +40 -0
- nuitka/code_generation/templates/CodeTemplatesModules.py +1 -7
- nuitka/freezer/DllDependenciesMacOS.py +18 -1
- nuitka/freezer/IncludedDataFiles.py +6 -10
- nuitka/importing/ImportResolving.py +6 -0
- nuitka/importing/Recursion.py +24 -68
- nuitka/nodes/AttributeNodes.py +72 -19
- nuitka/nodes/ChildrenHavingMixins.py +203 -234
- nuitka/nodes/ExpressionBasesGenerated.py +136 -0
- nuitka/nodes/HardImportNodesGenerated.py +94 -0
- nuitka/nodes/ImportHardNodes.py +3 -3
- nuitka/nodes/ImportNodes.py +14 -4
- nuitka/nodes/ModuleNodes.py +4 -2
- nuitka/nodes/PackageMetadataNodes.py +12 -10
- nuitka/nodes/PackageResourceNodes.py +115 -0
- nuitka/nodes/TypeNodes.py +5 -1
- nuitka/plugins/PluginBase.py +32 -8
- nuitka/plugins/Plugins.py +44 -7
- nuitka/plugins/standard/AntiBloatPlugin.py +166 -72
- nuitka/plugins/standard/DataFilesPlugin.py +10 -0
- nuitka/plugins/standard/DllFilesPlugin.py +1 -2
- nuitka/plugins/standard/MatplotlibPlugin.py +24 -22
- nuitka/plugins/standard/MultiprocessingPlugin.py +5 -12
- nuitka/plugins/standard/OptionsNannyPlugin.py +2 -2
- nuitka/plugins/standard/PySidePyQtPlugin.py +18 -6
- nuitka/plugins/standard/PywebViewPlugin.py +4 -2
- nuitka/plugins/standard/TkinterPlugin.py +3 -0
- nuitka/plugins/standard/TransformersPlugin.py +11 -1
- nuitka/plugins/standard/TrioPlugin.py +6 -66
- nuitka/plugins/standard/standard.nuitka-package.config.yml +367 -21
- nuitka/plugins/standard/stdlib3.nuitka-package.config.yml +16 -4
- nuitka/specs/HardImportSpecs.py +6 -0
- nuitka/tools/data_composer/DataComposer.py +25 -27
- nuitka/tools/general/find_module/FindModuleCode.py +5 -2
- nuitka/tools/podman/Podman.py +53 -0
- nuitka/tools/podman/__init__.py +18 -0
- nuitka/tools/podman/__main__.py +255 -0
- nuitka/tools/specialize/SpecializePython.py +37 -3
- nuitka/tools/testing/RuntimeTracing.py +4 -0
- nuitka/tree/Building.py +1 -1
- nuitka/tree/ReformulationFunctionStatements.py +137 -10
- nuitka/utils/Execution.py +11 -1
- nuitka/utils/ModuleNames.py +1 -1
- nuitka/utils/SharedLibraries.py +7 -7
- {Nuitka_winsvc-1.6.6.data → Nuitka_winsvc-1.7.5.data}/scripts/nuitka-run.bat +0 -0
- {Nuitka_winsvc-1.6.6.data → Nuitka_winsvc-1.7.5.data}/scripts/nuitka.bat +0 -0
- {Nuitka_winsvc-1.6.6.dist-info → Nuitka_winsvc-1.7.5.dist-info}/LICENSE.txt +0 -0
- {Nuitka_winsvc-1.6.6.dist-info → Nuitka_winsvc-1.7.5.dist-info}/WHEEL +0 -0
- {Nuitka_winsvc-1.6.6.dist-info → Nuitka_winsvc-1.7.5.dist-info}/entry_points.txt +0 -0
- {Nuitka_winsvc-1.6.6.dist-info → Nuitka_winsvc-1.7.5.dist-info}/top_level.txt +0 -0
|
@@ -6663,163 +6663,51 @@ ChildrenExpressionYieldFromMixin = ChildHavingExpressionMixin
|
|
|
6663
6663
|
ChildrenExpressionYieldFromWaitableMixin = ChildHavingExpressionMixin
|
|
6664
6664
|
|
|
6665
6665
|
|
|
6666
|
-
class
|
|
6667
|
-
# Mixins are not allowed to specify slots, pylint: disable=assigning-non-slot
|
|
6668
|
-
__slots__ = ()
|
|
6669
|
-
|
|
6670
|
-
# This is generated for use in
|
|
6671
|
-
# ExpressionBuiltinHasattr
|
|
6672
|
-
|
|
6673
|
-
def __init__(
|
|
6674
|
-
self,
|
|
6675
|
-
expression,
|
|
6676
|
-
attribute,
|
|
6677
|
-
):
|
|
6678
|
-
expression.parent = self
|
|
6679
|
-
|
|
6680
|
-
self.subnode_expression = expression
|
|
6681
|
-
|
|
6682
|
-
attribute.parent = self
|
|
6683
|
-
|
|
6684
|
-
self.subnode_attribute = attribute
|
|
6685
|
-
|
|
6686
|
-
def getVisitableNodes(self):
|
|
6687
|
-
"""The visitable nodes, with tuple values flattened."""
|
|
6688
|
-
|
|
6689
|
-
return (
|
|
6690
|
-
self.subnode_expression,
|
|
6691
|
-
self.subnode_attribute,
|
|
6692
|
-
)
|
|
6693
|
-
|
|
6694
|
-
def getVisitableNodesNamed(self):
|
|
6695
|
-
"""Named children dictionary.
|
|
6696
|
-
|
|
6697
|
-
For use in cloning nodes, debugging and XML output.
|
|
6698
|
-
"""
|
|
6699
|
-
|
|
6700
|
-
return (
|
|
6701
|
-
("expression", self.subnode_expression),
|
|
6702
|
-
("attribute", self.subnode_attribute),
|
|
6703
|
-
)
|
|
6704
|
-
|
|
6705
|
-
def replaceChild(self, old_node, new_node):
|
|
6706
|
-
value = self.subnode_expression
|
|
6707
|
-
if old_node is value:
|
|
6708
|
-
new_node.parent = self
|
|
6709
|
-
|
|
6710
|
-
self.subnode_expression = new_node
|
|
6711
|
-
|
|
6712
|
-
return
|
|
6713
|
-
|
|
6714
|
-
value = self.subnode_attribute
|
|
6715
|
-
if old_node is value:
|
|
6716
|
-
new_node.parent = self
|
|
6717
|
-
|
|
6718
|
-
self.subnode_attribute = new_node
|
|
6719
|
-
|
|
6720
|
-
return
|
|
6721
|
-
|
|
6722
|
-
raise AssertionError("Didn't find child", old_node, "in", self)
|
|
6723
|
-
|
|
6724
|
-
def getCloneArgs(self):
|
|
6725
|
-
"""Get clones of all children to pass for a new node.
|
|
6726
|
-
|
|
6727
|
-
Needs to make clones of child nodes too.
|
|
6728
|
-
"""
|
|
6729
|
-
|
|
6730
|
-
values = {
|
|
6731
|
-
"expression": self.subnode_expression.makeClone(),
|
|
6732
|
-
"attribute": self.subnode_attribute.makeClone(),
|
|
6733
|
-
}
|
|
6734
|
-
|
|
6735
|
-
values.update(self.getDetails())
|
|
6736
|
-
|
|
6737
|
-
return values
|
|
6738
|
-
|
|
6739
|
-
def finalize(self):
|
|
6740
|
-
del self.parent
|
|
6741
|
-
|
|
6742
|
-
self.subnode_expression.finalize()
|
|
6743
|
-
del self.subnode_expression
|
|
6744
|
-
self.subnode_attribute.finalize()
|
|
6745
|
-
del self.subnode_attribute
|
|
6746
|
-
|
|
6747
|
-
def computeExpressionRaw(self, trace_collection):
|
|
6748
|
-
"""Compute an expression.
|
|
6749
|
-
|
|
6750
|
-
Default behavior is to just visit the child expressions first, and
|
|
6751
|
-
then the node "computeExpression". For a few cases this needs to
|
|
6752
|
-
be overloaded, e.g. conditional expressions.
|
|
6753
|
-
"""
|
|
6754
|
-
|
|
6755
|
-
# First apply the sub-expressions, as they are evaluated before
|
|
6756
|
-
# the actual operation.
|
|
6757
|
-
for count, sub_expression in enumerate(self.getVisitableNodes()):
|
|
6758
|
-
expression = trace_collection.onExpression(sub_expression)
|
|
6759
|
-
|
|
6760
|
-
if expression.willRaiseAnyException():
|
|
6761
|
-
sub_expressions = self.getVisitableNodes()
|
|
6762
|
-
|
|
6763
|
-
wrapped_expression = wrapExpressionWithSideEffects(
|
|
6764
|
-
side_effects=sub_expressions[:count],
|
|
6765
|
-
old_node=sub_expression,
|
|
6766
|
-
new_node=expression,
|
|
6767
|
-
)
|
|
6768
|
-
|
|
6769
|
-
return (
|
|
6770
|
-
wrapped_expression,
|
|
6771
|
-
"new_raise",
|
|
6772
|
-
lambda: "For '%s' the child expression '%s' will raise."
|
|
6773
|
-
% (self.getChildNameNice(), expression.getChildNameNice()),
|
|
6774
|
-
)
|
|
6775
|
-
|
|
6776
|
-
# Then ask ourselves to work on it.
|
|
6777
|
-
return self.computeExpression(trace_collection)
|
|
6778
|
-
|
|
6779
|
-
def collectVariableAccesses(self, emit_read, emit_write):
|
|
6780
|
-
"""Collect variable reads and writes of child nodes."""
|
|
6781
|
-
|
|
6782
|
-
self.subnode_expression.collectVariableAccesses(emit_read, emit_write)
|
|
6783
|
-
self.subnode_attribute.collectVariableAccesses(emit_read, emit_write)
|
|
6784
|
-
|
|
6785
|
-
|
|
6786
|
-
# Assign the names that are easier to import with a stable name.
|
|
6787
|
-
ChildrenExpressionBuiltinHasattrMixin = ChildrenHavingExpressionAttributeMixin
|
|
6788
|
-
|
|
6789
|
-
|
|
6790
|
-
class ChildrenHavingExpressionAttributeValueMixin(object):
|
|
6666
|
+
class ChildrenHavingExpressionLowerAutoNoneUpperAutoNoneMixin(object):
|
|
6791
6667
|
# Mixins are not allowed to specify slots, pylint: disable=assigning-non-slot
|
|
6792
6668
|
__slots__ = ()
|
|
6793
6669
|
|
|
6794
6670
|
# This is generated for use in
|
|
6795
|
-
#
|
|
6671
|
+
# ExpressionSliceLookup
|
|
6796
6672
|
|
|
6797
6673
|
def __init__(
|
|
6798
6674
|
self,
|
|
6799
6675
|
expression,
|
|
6800
|
-
|
|
6801
|
-
|
|
6676
|
+
lower,
|
|
6677
|
+
upper,
|
|
6802
6678
|
):
|
|
6803
6679
|
expression.parent = self
|
|
6804
6680
|
|
|
6805
6681
|
self.subnode_expression = expression
|
|
6806
6682
|
|
|
6807
|
-
|
|
6683
|
+
lower = convertNoneConstantToNone(lower)
|
|
6684
|
+
if lower is not None:
|
|
6685
|
+
lower.parent = self
|
|
6808
6686
|
|
|
6809
|
-
self.
|
|
6687
|
+
self.subnode_lower = lower
|
|
6810
6688
|
|
|
6811
|
-
|
|
6689
|
+
upper = convertNoneConstantToNone(upper)
|
|
6690
|
+
if upper is not None:
|
|
6691
|
+
upper.parent = self
|
|
6812
6692
|
|
|
6813
|
-
self.
|
|
6693
|
+
self.subnode_upper = upper
|
|
6814
6694
|
|
|
6815
6695
|
def getVisitableNodes(self):
|
|
6816
6696
|
"""The visitable nodes, with tuple values flattened."""
|
|
6817
6697
|
|
|
6818
|
-
|
|
6819
|
-
|
|
6820
|
-
|
|
6821
|
-
|
|
6822
|
-
|
|
6698
|
+
result = []
|
|
6699
|
+
result.append(self.subnode_expression)
|
|
6700
|
+
value = self.subnode_lower
|
|
6701
|
+
if value is None:
|
|
6702
|
+
pass
|
|
6703
|
+
else:
|
|
6704
|
+
result.append(value)
|
|
6705
|
+
value = self.subnode_upper
|
|
6706
|
+
if value is None:
|
|
6707
|
+
pass
|
|
6708
|
+
else:
|
|
6709
|
+
result.append(value)
|
|
6710
|
+
return tuple(result)
|
|
6823
6711
|
|
|
6824
6712
|
def getVisitableNodesNamed(self):
|
|
6825
6713
|
"""Named children dictionary.
|
|
@@ -6829,8 +6717,8 @@ class ChildrenHavingExpressionAttributeValueMixin(object):
|
|
|
6829
6717
|
|
|
6830
6718
|
return (
|
|
6831
6719
|
("expression", self.subnode_expression),
|
|
6832
|
-
("
|
|
6833
|
-
("
|
|
6720
|
+
("lower", self.subnode_lower),
|
|
6721
|
+
("upper", self.subnode_upper),
|
|
6834
6722
|
)
|
|
6835
6723
|
|
|
6836
6724
|
def replaceChild(self, old_node, new_node):
|
|
@@ -6842,19 +6730,23 @@ class ChildrenHavingExpressionAttributeValueMixin(object):
|
|
|
6842
6730
|
|
|
6843
6731
|
return
|
|
6844
6732
|
|
|
6845
|
-
value = self.
|
|
6733
|
+
value = self.subnode_lower
|
|
6846
6734
|
if old_node is value:
|
|
6847
|
-
new_node
|
|
6735
|
+
new_node = convertNoneConstantToNone(new_node)
|
|
6736
|
+
if new_node is not None:
|
|
6737
|
+
new_node.parent = self
|
|
6848
6738
|
|
|
6849
|
-
self.
|
|
6739
|
+
self.subnode_lower = new_node
|
|
6850
6740
|
|
|
6851
6741
|
return
|
|
6852
6742
|
|
|
6853
|
-
value = self.
|
|
6743
|
+
value = self.subnode_upper
|
|
6854
6744
|
if old_node is value:
|
|
6855
|
-
new_node
|
|
6745
|
+
new_node = convertNoneConstantToNone(new_node)
|
|
6746
|
+
if new_node is not None:
|
|
6747
|
+
new_node.parent = self
|
|
6856
6748
|
|
|
6857
|
-
self.
|
|
6749
|
+
self.subnode_upper = new_node
|
|
6858
6750
|
|
|
6859
6751
|
return
|
|
6860
6752
|
|
|
@@ -6868,8 +6760,12 @@ class ChildrenHavingExpressionAttributeValueMixin(object):
|
|
|
6868
6760
|
|
|
6869
6761
|
values = {
|
|
6870
6762
|
"expression": self.subnode_expression.makeClone(),
|
|
6871
|
-
"
|
|
6872
|
-
|
|
6763
|
+
"lower": self.subnode_lower.makeClone()
|
|
6764
|
+
if self.subnode_lower is not None
|
|
6765
|
+
else None,
|
|
6766
|
+
"upper": self.subnode_upper.makeClone()
|
|
6767
|
+
if self.subnode_upper is not None
|
|
6768
|
+
else None,
|
|
6873
6769
|
}
|
|
6874
6770
|
|
|
6875
6771
|
values.update(self.getDetails())
|
|
@@ -6881,10 +6777,12 @@ class ChildrenHavingExpressionAttributeValueMixin(object):
|
|
|
6881
6777
|
|
|
6882
6778
|
self.subnode_expression.finalize()
|
|
6883
6779
|
del self.subnode_expression
|
|
6884
|
-
self.
|
|
6885
|
-
|
|
6886
|
-
self.
|
|
6887
|
-
|
|
6780
|
+
if self.subnode_lower is not None:
|
|
6781
|
+
self.subnode_lower.finalize()
|
|
6782
|
+
del self.subnode_lower
|
|
6783
|
+
if self.subnode_upper is not None:
|
|
6784
|
+
self.subnode_upper.finalize()
|
|
6785
|
+
del self.subnode_upper
|
|
6888
6786
|
|
|
6889
6787
|
def computeExpressionRaw(self, trace_collection):
|
|
6890
6788
|
"""Compute an expression.
|
|
@@ -6922,54 +6820,55 @@ class ChildrenHavingExpressionAttributeValueMixin(object):
|
|
|
6922
6820
|
"""Collect variable reads and writes of child nodes."""
|
|
6923
6821
|
|
|
6924
6822
|
self.subnode_expression.collectVariableAccesses(emit_read, emit_write)
|
|
6925
|
-
self.
|
|
6926
|
-
|
|
6823
|
+
subnode_lower = self.subnode_lower
|
|
6824
|
+
|
|
6825
|
+
if subnode_lower is not None:
|
|
6826
|
+
self.subnode_lower.collectVariableAccesses(emit_read, emit_write)
|
|
6827
|
+
subnode_upper = self.subnode_upper
|
|
6828
|
+
|
|
6829
|
+
if subnode_upper is not None:
|
|
6830
|
+
self.subnode_upper.collectVariableAccesses(emit_read, emit_write)
|
|
6927
6831
|
|
|
6928
6832
|
|
|
6929
6833
|
# Assign the names that are easier to import with a stable name.
|
|
6930
|
-
|
|
6834
|
+
ChildrenExpressionSliceLookupMixin = (
|
|
6835
|
+
ChildrenHavingExpressionLowerAutoNoneUpperAutoNoneMixin
|
|
6836
|
+
)
|
|
6931
6837
|
|
|
6932
6838
|
|
|
6933
|
-
class
|
|
6839
|
+
class ChildrenHavingExpressionNameDefaultOptionalMixin(object):
|
|
6934
6840
|
# Mixins are not allowed to specify slots, pylint: disable=assigning-non-slot
|
|
6935
6841
|
__slots__ = ()
|
|
6936
6842
|
|
|
6937
6843
|
# This is generated for use in
|
|
6938
|
-
#
|
|
6844
|
+
# ExpressionBuiltinGetattr
|
|
6939
6845
|
|
|
6940
6846
|
def __init__(
|
|
6941
6847
|
self,
|
|
6942
6848
|
expression,
|
|
6943
|
-
|
|
6944
|
-
|
|
6849
|
+
name,
|
|
6850
|
+
default,
|
|
6945
6851
|
):
|
|
6946
6852
|
expression.parent = self
|
|
6947
6853
|
|
|
6948
6854
|
self.subnode_expression = expression
|
|
6949
6855
|
|
|
6950
|
-
|
|
6951
|
-
if lower is not None:
|
|
6952
|
-
lower.parent = self
|
|
6856
|
+
name.parent = self
|
|
6953
6857
|
|
|
6954
|
-
self.
|
|
6858
|
+
self.subnode_name = name
|
|
6955
6859
|
|
|
6956
|
-
|
|
6957
|
-
|
|
6958
|
-
upper.parent = self
|
|
6860
|
+
if default is not None:
|
|
6861
|
+
default.parent = self
|
|
6959
6862
|
|
|
6960
|
-
self.
|
|
6863
|
+
self.subnode_default = default
|
|
6961
6864
|
|
|
6962
6865
|
def getVisitableNodes(self):
|
|
6963
6866
|
"""The visitable nodes, with tuple values flattened."""
|
|
6964
6867
|
|
|
6965
6868
|
result = []
|
|
6966
6869
|
result.append(self.subnode_expression)
|
|
6967
|
-
|
|
6968
|
-
|
|
6969
|
-
pass
|
|
6970
|
-
else:
|
|
6971
|
-
result.append(value)
|
|
6972
|
-
value = self.subnode_upper
|
|
6870
|
+
result.append(self.subnode_name)
|
|
6871
|
+
value = self.subnode_default
|
|
6973
6872
|
if value is None:
|
|
6974
6873
|
pass
|
|
6975
6874
|
else:
|
|
@@ -6984,8 +6883,8 @@ class ChildrenHavingExpressionLowerAutoNoneUpperAutoNoneMixin(object):
|
|
|
6984
6883
|
|
|
6985
6884
|
return (
|
|
6986
6885
|
("expression", self.subnode_expression),
|
|
6987
|
-
("
|
|
6988
|
-
("
|
|
6886
|
+
("name", self.subnode_name),
|
|
6887
|
+
("default", self.subnode_default),
|
|
6989
6888
|
)
|
|
6990
6889
|
|
|
6991
6890
|
def replaceChild(self, old_node, new_node):
|
|
@@ -6997,23 +6896,20 @@ class ChildrenHavingExpressionLowerAutoNoneUpperAutoNoneMixin(object):
|
|
|
6997
6896
|
|
|
6998
6897
|
return
|
|
6999
6898
|
|
|
7000
|
-
value = self.
|
|
6899
|
+
value = self.subnode_name
|
|
7001
6900
|
if old_node is value:
|
|
7002
|
-
new_node =
|
|
7003
|
-
if new_node is not None:
|
|
7004
|
-
new_node.parent = self
|
|
6901
|
+
new_node.parent = self
|
|
7005
6902
|
|
|
7006
|
-
self.
|
|
6903
|
+
self.subnode_name = new_node
|
|
7007
6904
|
|
|
7008
6905
|
return
|
|
7009
6906
|
|
|
7010
|
-
value = self.
|
|
6907
|
+
value = self.subnode_default
|
|
7011
6908
|
if old_node is value:
|
|
7012
|
-
new_node = convertNoneConstantToNone(new_node)
|
|
7013
6909
|
if new_node is not None:
|
|
7014
6910
|
new_node.parent = self
|
|
7015
6911
|
|
|
7016
|
-
self.
|
|
6912
|
+
self.subnode_default = new_node
|
|
7017
6913
|
|
|
7018
6914
|
return
|
|
7019
6915
|
|
|
@@ -7027,11 +6923,9 @@ class ChildrenHavingExpressionLowerAutoNoneUpperAutoNoneMixin(object):
|
|
|
7027
6923
|
|
|
7028
6924
|
values = {
|
|
7029
6925
|
"expression": self.subnode_expression.makeClone(),
|
|
7030
|
-
"
|
|
7031
|
-
|
|
7032
|
-
|
|
7033
|
-
"upper": self.subnode_upper.makeClone()
|
|
7034
|
-
if self.subnode_upper is not None
|
|
6926
|
+
"name": self.subnode_name.makeClone(),
|
|
6927
|
+
"default": self.subnode_default.makeClone()
|
|
6928
|
+
if self.subnode_default is not None
|
|
7035
6929
|
else None,
|
|
7036
6930
|
}
|
|
7037
6931
|
|
|
@@ -7044,12 +6938,11 @@ class ChildrenHavingExpressionLowerAutoNoneUpperAutoNoneMixin(object):
|
|
|
7044
6938
|
|
|
7045
6939
|
self.subnode_expression.finalize()
|
|
7046
6940
|
del self.subnode_expression
|
|
7047
|
-
|
|
7048
|
-
|
|
7049
|
-
|
|
7050
|
-
|
|
7051
|
-
|
|
7052
|
-
del self.subnode_upper
|
|
6941
|
+
self.subnode_name.finalize()
|
|
6942
|
+
del self.subnode_name
|
|
6943
|
+
if self.subnode_default is not None:
|
|
6944
|
+
self.subnode_default.finalize()
|
|
6945
|
+
del self.subnode_default
|
|
7053
6946
|
|
|
7054
6947
|
def computeExpressionRaw(self, trace_collection):
|
|
7055
6948
|
"""Compute an expression.
|
|
@@ -7087,34 +6980,29 @@ class ChildrenHavingExpressionLowerAutoNoneUpperAutoNoneMixin(object):
|
|
|
7087
6980
|
"""Collect variable reads and writes of child nodes."""
|
|
7088
6981
|
|
|
7089
6982
|
self.subnode_expression.collectVariableAccesses(emit_read, emit_write)
|
|
7090
|
-
|
|
7091
|
-
|
|
7092
|
-
if subnode_lower is not None:
|
|
7093
|
-
self.subnode_lower.collectVariableAccesses(emit_read, emit_write)
|
|
7094
|
-
subnode_upper = self.subnode_upper
|
|
6983
|
+
self.subnode_name.collectVariableAccesses(emit_read, emit_write)
|
|
6984
|
+
subnode_default = self.subnode_default
|
|
7095
6985
|
|
|
7096
|
-
if
|
|
7097
|
-
self.
|
|
6986
|
+
if subnode_default is not None:
|
|
6987
|
+
self.subnode_default.collectVariableAccesses(emit_read, emit_write)
|
|
7098
6988
|
|
|
7099
6989
|
|
|
7100
6990
|
# Assign the names that are easier to import with a stable name.
|
|
7101
|
-
|
|
7102
|
-
ChildrenHavingExpressionLowerAutoNoneUpperAutoNoneMixin
|
|
7103
|
-
)
|
|
6991
|
+
ChildrenExpressionBuiltinGetattrMixin = ChildrenHavingExpressionNameDefaultOptionalMixin
|
|
7104
6992
|
|
|
7105
6993
|
|
|
7106
|
-
class
|
|
6994
|
+
class ChildrenHavingExpressionNameValueMixin(object):
|
|
7107
6995
|
# Mixins are not allowed to specify slots, pylint: disable=assigning-non-slot
|
|
7108
6996
|
__slots__ = ()
|
|
7109
6997
|
|
|
7110
6998
|
# This is generated for use in
|
|
7111
|
-
#
|
|
6999
|
+
# ExpressionBuiltinSetattr
|
|
7112
7000
|
|
|
7113
7001
|
def __init__(
|
|
7114
7002
|
self,
|
|
7115
7003
|
expression,
|
|
7116
7004
|
name,
|
|
7117
|
-
|
|
7005
|
+
value,
|
|
7118
7006
|
):
|
|
7119
7007
|
expression.parent = self
|
|
7120
7008
|
|
|
@@ -7124,23 +7012,18 @@ class ChildrenHavingExpressionNameDefaultOptionalMixin(object):
|
|
|
7124
7012
|
|
|
7125
7013
|
self.subnode_name = name
|
|
7126
7014
|
|
|
7127
|
-
|
|
7128
|
-
default.parent = self
|
|
7015
|
+
value.parent = self
|
|
7129
7016
|
|
|
7130
|
-
self.
|
|
7017
|
+
self.subnode_value = value
|
|
7131
7018
|
|
|
7132
7019
|
def getVisitableNodes(self):
|
|
7133
7020
|
"""The visitable nodes, with tuple values flattened."""
|
|
7134
7021
|
|
|
7135
|
-
|
|
7136
|
-
|
|
7137
|
-
|
|
7138
|
-
|
|
7139
|
-
|
|
7140
|
-
pass
|
|
7141
|
-
else:
|
|
7142
|
-
result.append(value)
|
|
7143
|
-
return tuple(result)
|
|
7022
|
+
return (
|
|
7023
|
+
self.subnode_expression,
|
|
7024
|
+
self.subnode_name,
|
|
7025
|
+
self.subnode_value,
|
|
7026
|
+
)
|
|
7144
7027
|
|
|
7145
7028
|
def getVisitableNodesNamed(self):
|
|
7146
7029
|
"""Named children dictionary.
|
|
@@ -7151,7 +7034,7 @@ class ChildrenHavingExpressionNameDefaultOptionalMixin(object):
|
|
|
7151
7034
|
return (
|
|
7152
7035
|
("expression", self.subnode_expression),
|
|
7153
7036
|
("name", self.subnode_name),
|
|
7154
|
-
("
|
|
7037
|
+
("value", self.subnode_value),
|
|
7155
7038
|
)
|
|
7156
7039
|
|
|
7157
7040
|
def replaceChild(self, old_node, new_node):
|
|
@@ -7171,12 +7054,11 @@ class ChildrenHavingExpressionNameDefaultOptionalMixin(object):
|
|
|
7171
7054
|
|
|
7172
7055
|
return
|
|
7173
7056
|
|
|
7174
|
-
value = self.
|
|
7057
|
+
value = self.subnode_value
|
|
7175
7058
|
if old_node is value:
|
|
7176
|
-
|
|
7177
|
-
new_node.parent = self
|
|
7059
|
+
new_node.parent = self
|
|
7178
7060
|
|
|
7179
|
-
self.
|
|
7061
|
+
self.subnode_value = new_node
|
|
7180
7062
|
|
|
7181
7063
|
return
|
|
7182
7064
|
|
|
@@ -7191,9 +7073,7 @@ class ChildrenHavingExpressionNameDefaultOptionalMixin(object):
|
|
|
7191
7073
|
values = {
|
|
7192
7074
|
"expression": self.subnode_expression.makeClone(),
|
|
7193
7075
|
"name": self.subnode_name.makeClone(),
|
|
7194
|
-
"
|
|
7195
|
-
if self.subnode_default is not None
|
|
7196
|
-
else None,
|
|
7076
|
+
"value": self.subnode_value.makeClone(),
|
|
7197
7077
|
}
|
|
7198
7078
|
|
|
7199
7079
|
values.update(self.getDetails())
|
|
@@ -7207,9 +7087,8 @@ class ChildrenHavingExpressionNameDefaultOptionalMixin(object):
|
|
|
7207
7087
|
del self.subnode_expression
|
|
7208
7088
|
self.subnode_name.finalize()
|
|
7209
7089
|
del self.subnode_name
|
|
7210
|
-
|
|
7211
|
-
|
|
7212
|
-
del self.subnode_default
|
|
7090
|
+
self.subnode_value.finalize()
|
|
7091
|
+
del self.subnode_value
|
|
7213
7092
|
|
|
7214
7093
|
def computeExpressionRaw(self, trace_collection):
|
|
7215
7094
|
"""Compute an expression.
|
|
@@ -7248,14 +7127,11 @@ class ChildrenHavingExpressionNameDefaultOptionalMixin(object):
|
|
|
7248
7127
|
|
|
7249
7128
|
self.subnode_expression.collectVariableAccesses(emit_read, emit_write)
|
|
7250
7129
|
self.subnode_name.collectVariableAccesses(emit_read, emit_write)
|
|
7251
|
-
|
|
7252
|
-
|
|
7253
|
-
if subnode_default is not None:
|
|
7254
|
-
self.subnode_default.collectVariableAccesses(emit_read, emit_write)
|
|
7130
|
+
self.subnode_value.collectVariableAccesses(emit_read, emit_write)
|
|
7255
7131
|
|
|
7256
7132
|
|
|
7257
7133
|
# Assign the names that are easier to import with a stable name.
|
|
7258
|
-
|
|
7134
|
+
ChildrenExpressionBuiltinSetattrMixin = ChildrenHavingExpressionNameValueMixin
|
|
7259
7135
|
|
|
7260
7136
|
|
|
7261
7137
|
class ChildrenHavingExpressionSubscriptMixin(object):
|
|
@@ -12172,6 +12048,99 @@ class ChildHavingPMixin(object):
|
|
|
12172
12048
|
ChildrenExpressionOsPathBasenameMixin = ChildHavingPMixin
|
|
12173
12049
|
|
|
12174
12050
|
|
|
12051
|
+
class ChildHavingPackageMixin(object):
|
|
12052
|
+
# Mixins are not allowed to specify slots, pylint: disable=assigning-non-slot
|
|
12053
|
+
__slots__ = ()
|
|
12054
|
+
|
|
12055
|
+
# This is generated for use in
|
|
12056
|
+
# ExpressionImportlibResourcesFiles
|
|
12057
|
+
# ExpressionImportlibResourcesFilesCall
|
|
12058
|
+
|
|
12059
|
+
def __init__(
|
|
12060
|
+
self,
|
|
12061
|
+
package,
|
|
12062
|
+
):
|
|
12063
|
+
package.parent = self
|
|
12064
|
+
|
|
12065
|
+
self.subnode_package = package
|
|
12066
|
+
|
|
12067
|
+
def getVisitableNodes(self):
|
|
12068
|
+
"""The visitable nodes, with tuple values flattened."""
|
|
12069
|
+
|
|
12070
|
+
return (self.subnode_package,)
|
|
12071
|
+
|
|
12072
|
+
def getVisitableNodesNamed(self):
|
|
12073
|
+
"""Named children dictionary.
|
|
12074
|
+
|
|
12075
|
+
For use in cloning nodes, debugging and XML output.
|
|
12076
|
+
"""
|
|
12077
|
+
|
|
12078
|
+
return (("package", self.subnode_package),)
|
|
12079
|
+
|
|
12080
|
+
def replaceChild(self, old_node, new_node):
|
|
12081
|
+
value = self.subnode_package
|
|
12082
|
+
if old_node is value:
|
|
12083
|
+
new_node.parent = self
|
|
12084
|
+
|
|
12085
|
+
self.subnode_package = new_node
|
|
12086
|
+
|
|
12087
|
+
return
|
|
12088
|
+
|
|
12089
|
+
raise AssertionError("Didn't find child", old_node, "in", self)
|
|
12090
|
+
|
|
12091
|
+
def getCloneArgs(self):
|
|
12092
|
+
"""Get clones of all children to pass for a new node.
|
|
12093
|
+
|
|
12094
|
+
Needs to make clones of child nodes too.
|
|
12095
|
+
"""
|
|
12096
|
+
|
|
12097
|
+
values = {
|
|
12098
|
+
"package": self.subnode_package.makeClone(),
|
|
12099
|
+
}
|
|
12100
|
+
|
|
12101
|
+
values.update(self.getDetails())
|
|
12102
|
+
|
|
12103
|
+
return values
|
|
12104
|
+
|
|
12105
|
+
def finalize(self):
|
|
12106
|
+
del self.parent
|
|
12107
|
+
|
|
12108
|
+
self.subnode_package.finalize()
|
|
12109
|
+
del self.subnode_package
|
|
12110
|
+
|
|
12111
|
+
def computeExpressionRaw(self, trace_collection):
|
|
12112
|
+
"""Compute an expression.
|
|
12113
|
+
|
|
12114
|
+
Default behavior is to just visit the child expressions first, and
|
|
12115
|
+
then the node "computeExpression". For a few cases this needs to
|
|
12116
|
+
be overloaded, e.g. conditional expressions.
|
|
12117
|
+
"""
|
|
12118
|
+
|
|
12119
|
+
# First apply the sub-expression, as they it's evaluated before.
|
|
12120
|
+
expression = trace_collection.onExpression(self.subnode_package)
|
|
12121
|
+
|
|
12122
|
+
if expression.willRaiseAnyException():
|
|
12123
|
+
return (
|
|
12124
|
+
expression,
|
|
12125
|
+
"new_raise",
|
|
12126
|
+
lambda: "For '%s' the child expression '%s' will raise."
|
|
12127
|
+
% (self.getChildNameNice(), expression.getChildNameNice()),
|
|
12128
|
+
)
|
|
12129
|
+
|
|
12130
|
+
# Then ask ourselves to work on it.
|
|
12131
|
+
return self.computeExpression(trace_collection)
|
|
12132
|
+
|
|
12133
|
+
def collectVariableAccesses(self, emit_read, emit_write):
|
|
12134
|
+
"""Collect variable reads and writes of child nodes."""
|
|
12135
|
+
|
|
12136
|
+
self.subnode_package.collectVariableAccesses(emit_read, emit_write)
|
|
12137
|
+
|
|
12138
|
+
|
|
12139
|
+
# Assign the names that are easier to import with a stable name.
|
|
12140
|
+
ChildrenExpressionImportlibResourcesFilesMixin = ChildHavingPackageMixin
|
|
12141
|
+
ChildrenExpressionImportlibResourcesFilesCallMixin = ChildHavingPackageMixin
|
|
12142
|
+
|
|
12143
|
+
|
|
12175
12144
|
class ChildrenHavingPackageResourceMixin(object):
|
|
12176
12145
|
# Mixins are not allowed to specify slots, pylint: disable=assigning-non-slot
|
|
12177
12146
|
__slots__ = ()
|