regina 7.4.1__cp314-cp314-macosx_10_13_x86_64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. regina/.dylibs/libgmp.10.dylib +0 -0
  2. regina/.dylibs/libgmpxx.4.dylib +0 -0
  3. regina/__init__.py +192 -0
  4. regina/engine.cpython-314-darwin.so +0 -0
  5. regina/plainCompleter.py +221 -0
  6. regina/pyCensus/__init__.py +14 -0
  7. regina/pyCensus/christy-knots-links.tdb +0 -0
  8. regina/pyCensus/closed-hyp-census-full.tdb +0 -0
  9. regina/pyCensus/closed-nor-census-11.tdb +0 -0
  10. regina/pyCensus/closed-or-census-11.tdb +0 -0
  11. regina/pyCensus/cusped-hyp-nor-census-9.tdb +0 -0
  12. regina/pyCensus/cusped-hyp-or-census-9.tdb +0 -0
  13. regina/sageRegina/__init__.py +2 -0
  14. regina/sageRegina/config.py +9 -0
  15. regina/sageRegina/test.py +131 -0
  16. regina/sageRegina/testsuite/CMakeLists.txt +64 -0
  17. regina/sageRegina/testsuite/O2_1.rga +15 -0
  18. regina/sageRegina/testsuite/O2_1.tri +28 -0
  19. regina/sageRegina/testsuite/README.txt +21 -0
  20. regina/sageRegina/testsuite/alltypes-exc.out +698 -0
  21. regina/sageRegina/testsuite/alltypes-exc.test +92 -0
  22. regina/sageRegina/testsuite/alltypes-noexc.out +698 -0
  23. regina/sageRegina/testsuite/alltypes-noexc.test +85 -0
  24. regina/sageRegina/testsuite/alltypes.out +698 -0
  25. regina/sageRegina/testsuite/alltypes.test +85 -0
  26. regina/sageRegina/testsuite/angles.out +102 -0
  27. regina/sageRegina/testsuite/angles.test +70 -0
  28. regina/sageRegina/testsuite/arrow.out +86 -0
  29. regina/sageRegina/testsuite/arrow.test +224 -0
  30. regina/sageRegina/testsuite/base64.out +2 -0
  31. regina/sageRegina/testsuite/base64.test +37 -0
  32. regina/sageRegina/testsuite/basic_callback.out +124 -0
  33. regina/sageRegina/testsuite/basic_sub.out +7 -0
  34. regina/sageRegina/testsuite/binom.out +14 -0
  35. regina/sageRegina/testsuite/binom.test +69 -0
  36. regina/sageRegina/testsuite/bool.out +6 -0
  37. regina/sageRegina/testsuite/bool.test +62 -0
  38. regina/sageRegina/testsuite/bytes.out +17 -0
  39. regina/sageRegina/testsuite/bytes.test +76 -0
  40. regina/sageRegina/testsuite/callbacks.out +515 -0
  41. regina/sageRegina/testsuite/callbacks.test +279 -0
  42. regina/sageRegina/testsuite/census.out +120 -0
  43. regina/sageRegina/testsuite/census.test +156 -0
  44. regina/sageRegina/testsuite/clone.out +18 -0
  45. regina/sageRegina/testsuite/clone.test +99 -0
  46. regina/sageRegina/testsuite/comparison.out +41 -0
  47. regina/sageRegina/testsuite/comparison.test +47 -0
  48. regina/sageRegina/testsuite/construction.out +120 -0
  49. regina/sageRegina/testsuite/construction.test +63 -0
  50. regina/sageRegina/testsuite/constructors.out +14 -0
  51. regina/sageRegina/testsuite/constructors.test +95 -0
  52. regina/sageRegina/testsuite/cube.orb +87 -0
  53. regina/sageRegina/testsuite/discs.out +3 -0
  54. regina/sageRegina/testsuite/discs.test +38 -0
  55. regina/sageRegina/testsuite/docstrings.filter +22 -0
  56. regina/sageRegina/testsuite/docstrings.out +802 -0
  57. regina/sageRegina/testsuite/docstrings.out.v2 +799 -0
  58. regina/sageRegina/testsuite/docstrings.test +55 -0
  59. regina/sageRegina/testsuite/dodec.orb +309 -0
  60. regina/sageRegina/testsuite/embeddings.out +23 -0
  61. regina/sageRegina/testsuite/embeddings.test +87 -0
  62. regina/sageRegina/testsuite/enumerate.out +62 -0
  63. regina/sageRegina/testsuite/enumerate.test +80 -0
  64. regina/sageRegina/testsuite/equality.out +112 -0
  65. regina/sageRegina/testsuite/equality.test +308 -0
  66. regina/sageRegina/testsuite/euler.out +15 -0
  67. regina/sageRegina/testsuite/euler.test +93 -0
  68. regina/sageRegina/testsuite/exception.out +7 -0
  69. regina/sageRegina/testsuite/exception.test +98 -0
  70. regina/sageRegina/testsuite/facenumbering.out +546 -0
  71. regina/sageRegina/testsuite/facenumbering.test +72 -0
  72. regina/sageRegina/testsuite/faces.out +40 -0
  73. regina/sageRegina/testsuite/faces.test +70 -0
  74. regina/sageRegina/testsuite/file.out +1229 -0
  75. regina/sageRegina/testsuite/file.test +68 -0
  76. regina/sageRegina/testsuite/file1.rga +0 -0
  77. regina/sageRegina/testsuite/file2.rga +0 -0
  78. regina/sageRegina/testsuite/file3.rga +119 -0
  79. regina/sageRegina/testsuite/flags.out +38 -0
  80. regina/sageRegina/testsuite/flags.out.v2 +38 -0
  81. regina/sageRegina/testsuite/flags.test +81 -0
  82. regina/sageRegina/testsuite/flype.out +37 -0
  83. regina/sageRegina/testsuite/flype.test +48 -0
  84. regina/sageRegina/testsuite/generic.out +116 -0
  85. regina/sageRegina/testsuite/generic.test +74 -0
  86. regina/sageRegina/testsuite/groups.out +70 -0
  87. regina/sageRegina/testsuite/groups.test +115 -0
  88. regina/sageRegina/testsuite/hash.out +66 -0
  89. regina/sageRegina/testsuite/hash.test +84 -0
  90. regina/sageRegina/testsuite/hypersurfaces.out +681 -0
  91. regina/sageRegina/testsuite/hypersurfaces.test +89 -0
  92. regina/sageRegina/testsuite/i18n-latin1.rga +8 -0
  93. regina/sageRegina/testsuite/i18n-utf8.rga +8 -0
  94. regina/sageRegina/testsuite/i18n.out +6 -0
  95. regina/sageRegina/testsuite/i18n.test +89 -0
  96. regina/sageRegina/testsuite/id.out +2 -0
  97. regina/sageRegina/testsuite/id.test +45 -0
  98. regina/sageRegina/testsuite/index.out +2 -0
  99. regina/sageRegina/testsuite/index.test +41 -0
  100. regina/sageRegina/testsuite/integer.out +74 -0
  101. regina/sageRegina/testsuite/integer.test +54 -0
  102. regina/sageRegina/testsuite/italian.orb +90 -0
  103. regina/sageRegina/testsuite/iterators.out +118 -0
  104. regina/sageRegina/testsuite/iterators.test +126 -0
  105. regina/sageRegina/testsuite/knotted-Y.orb +47 -0
  106. regina/sageRegina/testsuite/listener.out +43 -0
  107. regina/sageRegina/testsuite/listener.test +99 -0
  108. regina/sageRegina/testsuite/listview.out +416 -0
  109. regina/sageRegina/testsuite/listview.test +251 -0
  110. regina/sageRegina/testsuite/lookup.out +13 -0
  111. regina/sageRegina/testsuite/lookup.test +42 -0
  112. regina/sageRegina/testsuite/lst.out +844 -0
  113. regina/sageRegina/testsuite/lst.test +195 -0
  114. regina/sageRegina/testsuite/memory1.out +62 -0
  115. regina/sageRegina/testsuite/memory1.test +152 -0
  116. regina/sageRegina/testsuite/memory2.out +62 -0
  117. regina/sageRegina/testsuite/memory2.test +122 -0
  118. regina/sageRegina/testsuite/memory3.out +92 -0
  119. regina/sageRegina/testsuite/memory3.test +214 -0
  120. regina/sageRegina/testsuite/misc.out +7 -0
  121. regina/sageRegina/testsuite/misc.test +54 -0
  122. regina/sageRegina/testsuite/operators.out +129 -0
  123. regina/sageRegina/testsuite/operators.test +59 -0
  124. regina/sageRegina/testsuite/orb.out +441 -0
  125. regina/sageRegina/testsuite/orb.test +47 -0
  126. regina/sageRegina/testsuite/pdf.out +4 -0
  127. regina/sageRegina/testsuite/pdf.test +47 -0
  128. regina/sageRegina/testsuite/perm.out +36 -0
  129. regina/sageRegina/testsuite/perm.test +74 -0
  130. regina/sageRegina/testsuite/plantri.out +12 -0
  131. regina/sageRegina/testsuite/plantri.test +58 -0
  132. regina/sageRegina/testsuite/poincare.tri +55 -0
  133. regina/sageRegina/testsuite/presentations.out +11 -0
  134. regina/sageRegina/testsuite/presentations.test +59 -0
  135. regina/sageRegina/testsuite/refs.out +51 -0
  136. regina/sageRegina/testsuite/refs.test +126 -0
  137. regina/sageRegina/testsuite/repr.out +951 -0
  138. regina/sageRegina/testsuite/repr.out.v2 +951 -0
  139. regina/sageRegina/testsuite/repr.test +546 -0
  140. regina/sageRegina/testsuite/runbasic.in +75 -0
  141. regina/sageRegina/testsuite/safeheldtype_basic.out +17 -0
  142. regina/sageRegina/testsuite/safeheldtype_basic.test +111 -0
  143. regina/sageRegina/testsuite/safeheldtype_packet.out +58 -0
  144. regina/sageRegina/testsuite/safeheldtype_packet.test +179 -0
  145. regina/sageRegina/testsuite/sample.pdf +0 -0
  146. regina/sageRegina/testsuite/sets.out +7 -0
  147. regina/sageRegina/testsuite/sets.test +42 -0
  148. regina/sageRegina/testsuite/skeleton.out +308 -0
  149. regina/sageRegina/testsuite/skeleton.test +52 -0
  150. regina/sageRegina/testsuite/snappea.out +90 -0
  151. regina/sageRegina/testsuite/snappea.test +133 -0
  152. regina/sageRegina/testsuite/snapshot.out +15 -0
  153. regina/sageRegina/testsuite/snapshot.test +76 -0
  154. regina/sageRegina/testsuite/sort.out +78 -0
  155. regina/sageRegina/testsuite/sort.test +58 -0
  156. regina/sageRegina/testsuite/special.out +4 -0
  157. regina/sageRegina/testsuite/special.test +45 -0
  158. regina/sageRegina/testsuite/standardtri.out +12101 -0
  159. regina/sageRegina/testsuite/standardtri.test +453 -0
  160. regina/sageRegina/testsuite/surfaces.out +2133 -0
  161. regina/sageRegina/testsuite/surfaces.test +112 -0
  162. regina/sageRegina/testsuite/swapping.out +25 -0
  163. regina/sageRegina/testsuite/swapping.test +86 -0
  164. regina/sageRegina/testsuite/testall.in +174 -0
  165. regina/sageRegina/testsuite/testbasic.in +277 -0
  166. regina/sageRegina/testsuite/testcallback.in +148 -0
  167. regina/sageRegina/testsuite/testsub.in +148 -0
  168. regina/sageRegina/testsuite/theta_in_solid_torus.orb +65 -0
  169. regina/sageRegina/testsuite/tightencode.out +40 -0
  170. regina/sageRegina/testsuite/tightencode.test +106 -0
  171. regina/sageRegina/testsuite/treedecomp.out +135 -0
  172. regina/sageRegina/testsuite/treedecomp.test +64 -0
  173. regina/sageRegina/testsuite/treetraversal.out +52 -0
  174. regina/sageRegina/testsuite/treetraversal.test +188 -0
  175. regina/sageRegina/testsuite/trigeneral.out +1251 -0
  176. regina/sageRegina/testsuite/trigeneral.test +153 -0
  177. regina/sageRegina/testsuite/utf8.out +42 -0
  178. regina/sageRegina/testsuite/utf8.test +92 -0
  179. regina/sageRegina/testsuite/whitehead.tri +47 -0
  180. regina/sageRegina/version.py +5 -0
  181. regina/sageSetup.py +41 -0
  182. regina/test.py +6 -0
  183. regina-7.4.1.dist-info/METADATA +109 -0
  184. regina-7.4.1.dist-info/RECORD +186 -0
  185. regina-7.4.1.dist-info/WHEEL +6 -0
  186. regina-7.4.1.dist-info/top_level.txt +4 -0
@@ -0,0 +1,126 @@
1
+ # Regina - A Normal Surface Theory Calculator
2
+ # Python Test Suite Component
3
+ #
4
+ # Copyright (c) 2019-2025, Ben Burton
5
+ # For further details contact Ben Burton (bab@debian.org).
6
+ #
7
+ # Tests custom python iterators.
8
+ #
9
+ # This file is a single component of Regina's python test suite. To run
10
+ # the python test suite, move to the main python directory in the source
11
+ # tree and run "make check".
12
+ #
13
+ # This program is free software; you can redistribute it and/or
14
+ # modify it under the terms of the GNU General Public License as
15
+ # published by the Free Software Foundation; either version 2 of the
16
+ # License, or (at your option) any later version.
17
+ #
18
+ # As an exception, when this program is distributed through (i) the
19
+ # App Store by Apple Inc.; (ii) the Mac App Store by Apple Inc.; or
20
+ # (iii) Google Play by Google Inc., then that store may impose any
21
+ # digital rights management, device limits and/or redistribution
22
+ # restrictions that are required by its terms of service.
23
+ #
24
+ # This program is distributed in the hope that it will be useful, but
25
+ # WITHOUT ANY WARRANTY; without even the implied warranty of
26
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
27
+ # General Public License for more details.
28
+ #
29
+ # You should have received a copy of the GNU General Public License
30
+ # along with this program. If not, see <https://www.gnu.org/licenses/>.
31
+
32
+ root = Container(); root.setLabel('root')
33
+ a = Container(); a.setLabel('a')
34
+ aa = Container(); aa.setLabel('aa')
35
+ aaa = Container(); aaa.setLabel('aaa')
36
+ aab = Container(); aab.setLabel('aab')
37
+ ab = Container(); ab.setLabel('ab')
38
+ aba = Container(); aba.setLabel('aba')
39
+ abb = Container(); abb.setLabel('abb')
40
+ b = Container(); b.setLabel('b')
41
+ ba = Container(); ba.setLabel('ba')
42
+ baa = Container(); baa.setLabel('baa')
43
+ bab = Container(); bab.setLabel('bab')
44
+ bb = Container(); bb.setLabel('bb')
45
+ bba = Container(); bba.setLabel('bba')
46
+ bbb = Container(); bbb.setLabel('bbb')
47
+
48
+ root.append(a)
49
+ root.append(b)
50
+ a.append(aa)
51
+ a.append(ab)
52
+ b.append(ba)
53
+ b.append(bb)
54
+ aa.append(aaa)
55
+ aa.append(aab)
56
+ ab.append(aba)
57
+ ab.append(abb)
58
+ ba.append(baa)
59
+ ba.append(bab)
60
+ bb.append(bba)
61
+ bb.append(bbb)
62
+
63
+ print('a.children():')
64
+ for i in a.children():
65
+ print(i.label())
66
+
67
+ print('a.subtree():')
68
+ for i in a.subtree():
69
+ print(i.label())
70
+
71
+ print('a.descendants():')
72
+ for i in a.descendants():
73
+ print(i.label())
74
+
75
+ print('a as iterable:')
76
+ for i in a:
77
+ print(i.label())
78
+
79
+ print('Angle structure iteration:')
80
+ for a in AngleStructures(Example3.figureEight()):
81
+ print(a)
82
+
83
+ print('Normal surface iteration:')
84
+ surfaces = NormalSurfaces(Example3.figureEight(), NormalCoords.Quad)
85
+ for s in surfaces:
86
+ print(s)
87
+
88
+ for s in surfaces.vectors():
89
+ print(s)
90
+
91
+ print('Normal disc iteration:')
92
+ for d in DiscSetSurface(NormalSurfaces(Example3.poincare(), NormalCoords.Standard).surface(0)):
93
+ print(d)
94
+
95
+ print('Normal hypersurface iteration:')
96
+ hypersurfaces = NormalHypersurfaces(Example4.rp4(), HyperCoords.Standard)
97
+ for s in hypersurfaces:
98
+ print(s)
99
+
100
+ for s in hypersurfaces.vectors():
101
+ print(s)
102
+
103
+ print('Model link graph cell arc iteration:')
104
+ g = ModelLinkGraph.fromPlantri('bcdd,aeec,abfd,acfa,bffb,ceed')
105
+ c = g.cells()
106
+ for i in range(c.countCells()):
107
+ bdry = []
108
+ for a in c.arcs(i):
109
+ bdry.append(str(a.node().index()) + ':' + str(a.arc()))
110
+ print(bdry)
111
+
112
+ print('Vector<Integer> iteration:')
113
+ for i in VectorInt([3,5,-1]):
114
+ print(i)
115
+
116
+ print('Vector<LargeInteger> iteration:')
117
+ for i in VectorLarge([3,5,-1]):
118
+ print(i)
119
+
120
+ print('PermGroup iteration:')
121
+ for i in PermGroup4(NamedPermGroup.Alternating):
122
+ print(i)
123
+
124
+ print('TableView iteration:')
125
+ for i in quadString:
126
+ print(i)
@@ -0,0 +1,47 @@
1
+ % orb
2
+ knotted-Y
3
+ SolutionType geometric_solution
4
+ vertices_known
5
+
6
+ 1 0 1.000 1 1 1xw 2wv 1uv 2vx 1vx 2uw 1uw 2wx 1wv 2vu 1ux 2ux
7
+
8
+ 1 -0.8058307013735850 0.6811682580285615 0.6811682580285615 0.5235987755982991 0.5235987755982991 0.5235987755982991 0.5235987755982991 0.5235987755982991 0.5235987755982991 0.5235987755982991 0.5235987755982991 0.5235987755982991 0.5235987755982991 0.5235987755982991 0.5235987755982991
9
+
10
+ 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
11
+
12
+ 12
13
+ 0 84 143
14
+ 1 84 92
15
+ 2 54 92
16
+ 3 85 211
17
+ 4 37 176
18
+ 5 66 194
19
+ 6 148 90
20
+ 7 120 178
21
+ 8 137 142
22
+ 9 21 90
23
+ 10 21 211
24
+ 11 148 211
25
+
26
+ 13
27
+ 0 0 1 1
28
+ 1 1 2 1
29
+ 2 2 3 1
30
+ 3 0 4 1
31
+ 4 4 5 1
32
+ 5 5 6 1
33
+ 6 0 7 1
34
+ 7 7 8 1
35
+ 8 8 9 1
36
+ 9 9 10 1
37
+ 10 10 3 1
38
+ 11 11 3 1
39
+ 12 6 11 1
40
+
41
+ 6
42
+ 0 84 118 0 8 0.485463 0.456897
43
+ 1 96 155 6 5 0.349259 0.372845
44
+ 2 114 132 5 8 0.595541 0.191083
45
+ 3 69 152 3 2 0.300635 0.511941
46
+ 4 76 180 2 5 0.74041 0.13357
47
+ 5 57 106 8 2 0.682989 0.121719
@@ -0,0 +1,43 @@
1
+ Creating...
2
+ Inserting children t,u...
3
+ ADDING CHILD: c -> t
4
+ ADDED CHILD: c -> t
5
+ ADDING CHILD: c -> u
6
+ ADDED CHILD: c -> u
7
+ Renaming...
8
+ RENAMING: t
9
+ RENAMING CHILD: c -> t
10
+ RENAMED: t2
11
+ RENAMED CHILD: c -> t2
12
+ Editing...
13
+ CHANGING: text
14
+ CHANGED: text2
15
+ Orphaning child t...
16
+ REMOVING CHILD: c -> t2
17
+ REMOVED CHILD: c -> t2
18
+ Reparenting child t...
19
+ ADDING CHILD: c -> t2
20
+ ADDED CHILD: c -> t2
21
+ Dropping reference to u...
22
+ Destroying child u...
23
+ REMOVING CHILD: c -> u
24
+ REMOVED CHILD: c -> u
25
+ DESTROYING: u
26
+ Destroying parent...
27
+ DESTROYING: c
28
+ Destroying child t...
29
+ DESTROYING: t2
30
+ Preparing order test...
31
+ ADDING CHILD: x -> z1
32
+ ADDED CHILD: x -> z1
33
+ ADDING CHILD: x -> z2
34
+ ADDED CHILD: x -> z2
35
+ ADDING CHILD: z1 -> y
36
+ ADDED CHILD: z1 -> y
37
+ Dropping children...
38
+ Dropping root...
39
+ DESTROYING: y
40
+ DESTROYING: z1
41
+ DESTROYING: z2
42
+ DESTROYING: x
43
+ Finished.
@@ -0,0 +1,99 @@
1
+ # Regina - A Normal Surface Theory Calculator
2
+ # Python Test Suite Component
3
+ #
4
+ # Copyright (c) 2019-2025, Ben Burton
5
+ # For further details contact Ben Burton (bab@debian.org).
6
+ #
7
+ # Tests the behaviour of packet listeners
8
+ #
9
+ # This file is a single component of Regina's python test suite. To run
10
+ # the python test suite, move to the main python directory in the source
11
+ # tree and run "make check".
12
+ #
13
+ # This program is free software; you can redistribute it and/or
14
+ # modify it under the terms of the GNU General Public License as
15
+ # published by the Free Software Foundation; either version 2 of the
16
+ # License, or (at your option) any later version.
17
+ #
18
+ # As an exception, when this program is distributed through (i) the
19
+ # App Store by Apple Inc.; (ii) the Mac App Store by Apple Inc.; or
20
+ # (iii) Google Play by Google Inc., then that store may impose any
21
+ # digital rights management, device limits and/or redistribution
22
+ # restrictions that are required by its terms of service.
23
+ #
24
+ # This program is distributed in the hope that it will be useful, but
25
+ # WITHOUT ANY WARRANTY; without even the implied warranty of
26
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
27
+ # General Public License for more details.
28
+ #
29
+ # You should have received a copy of the GNU General Public License
30
+ # along with this program. If not, see <https://www.gnu.org/licenses/>.
31
+
32
+ class Watcher(PacketListener):
33
+ def packetToBeChanged(self, packet):
34
+ print('CHANGING: ' + packet.text())
35
+ def packetWasChanged(self, packet):
36
+ print('CHANGED: ' + packet.text())
37
+ def packetToBeRenamed(self, packet):
38
+ print('RENAMING: ' + packet.label())
39
+ def packetWasRenamed(self, packet):
40
+ print('RENAMED: ' + packet.label())
41
+ def packetBeingDestroyed(self, packet):
42
+ print('DESTROYING: ' + packet.label())
43
+ def childToBeAdded(self, packet, child):
44
+ print('ADDING CHILD: ' + packet.label() + ' -> ' + child.label())
45
+ def childWasAdded(self, packet, child):
46
+ print('ADDED CHILD: ' + packet.label() + ' -> ' + child.label())
47
+ def childToBeRemoved(self, packet, child):
48
+ print('REMOVING CHILD: ' + packet.label() + ' -> ' + child.label())
49
+ def childWasRemoved(self, packet, child):
50
+ print('REMOVED CHILD: ' + packet.label() + ' -> ' + child.label())
51
+ def childToBeRenamed(self, packet, child):
52
+ print('RENAMING CHILD: ' + packet.label() + ' -> ' + child.label())
53
+ def childWasRenamed(self, packet, child):
54
+ print('RENAMED CHILD: ' + packet.label() + ' -> ' + child.label())
55
+
56
+ w = Watcher()
57
+
58
+ print('Creating...')
59
+ c = Container(); c.setLabel('c'); cw = Watcher(); dummy = c.listen(cw)
60
+ t = Text('text'); t.setLabel('t'); tw = Watcher(); dummy = t.listen(tw)
61
+ u = Text('essay'); u.setLabel('u'); uw = Watcher(); dummy = u.listen(uw)
62
+ print('Inserting children t,u...')
63
+ c.append(t)
64
+ c.append(u)
65
+ print('Renaming...')
66
+ t.setLabel('t2')
67
+ print('Editing...')
68
+ t.setText('text2')
69
+ print('Orphaning child t...')
70
+ t.makeOrphan()
71
+ print('Reparenting child t...')
72
+ c.prepend(t)
73
+ # The only way to destroy a child from python is to drop all references
74
+ # to it and orphan it.
75
+ print('Dropping reference to u...')
76
+ u = None
77
+ print('Destroying child u...')
78
+ c.lastChild().makeOrphan() # u destroyed
79
+ print('Destroying parent...')
80
+ c = None # t lives, since it is managed by python
81
+ print('Destroying child t...')
82
+ t = None
83
+
84
+ # Now test the order in which destruction events are fired.
85
+ print('Preparing order test...')
86
+ x = Container(); x.setLabel('x'); xw = Watcher(); dummy = x.listen(xw)
87
+ y = Container(); y.setLabel('y'); yw = Watcher(); dummy = y.listen(yw)
88
+ z1 = Container(); z1.setLabel('z1'); z1w = Watcher(); dummy = z1.listen(z1w)
89
+ z2 = Container(); z2.setLabel('z2'); z2w = Watcher(); dummy = z2.listen(z2w)
90
+ x.append(z1)
91
+ x.append(z2)
92
+ z1.append(y)
93
+ print('Dropping children...')
94
+ y = None; z1 = None; z2 = None
95
+ print('Dropping root...')
96
+ x = None
97
+
98
+ print('Finished.')
99
+