memory-graph 0.3.24__tar.gz → 0.3.26__tar.gz

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 (231) hide show
  1. {memory_graph-0.3.24/memory_graph.egg-info → memory_graph-0.3.26}/PKG-INFO +30 -36
  2. {memory_graph-0.3.24 → memory_graph-0.3.26}/README.md +28 -34
  3. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/add_one.gv +18 -18
  4. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/avltree_dir.gv +5 -5
  5. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/avltree_key_value.gv +12 -12
  6. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/avltree_leaf.gv +5 -5
  7. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/avltree_linear.gv +12 -12
  8. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/avltree_table.gv +12 -12
  9. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/bin_tree.gv +35 -35
  10. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/copies.gv +20 -20
  11. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/copy_method.gv +16 -16
  12. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/debugging01.gv +8 -8
  13. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/debugging01.png +0 -0
  14. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/debugging02.gv +11 -11
  15. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/debugging02.png +0 -0
  16. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/debugging03.gv +13 -13
  17. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/debugging03.png +0 -0
  18. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/debugging04.gv +15 -15
  19. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/debugging04.png +0 -0
  20. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/debugging05.gv +17 -17
  21. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/debugging05.png +0 -0
  22. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/debugging06.gv +17 -17
  23. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/debugging06.png +0 -0
  24. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/extension_numpy.gv +8 -8
  25. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/extension_pandas.gv +8 -8
  26. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/factorial0.gv +3 -3
  27. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/factorial0.png +0 -0
  28. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/factorial1.gv +6 -6
  29. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/factorial1.png +0 -0
  30. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/factorial2.gv +8 -8
  31. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/factorial2.png +0 -0
  32. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/factorial3.gv +10 -10
  33. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/factorial3.png +0 -0
  34. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/factorial4.gv +10 -10
  35. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/factorial4.png +0 -0
  36. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/factorial5.gv +8 -8
  37. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/factorial5.png +0 -0
  38. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/factorial6.gv +6 -6
  39. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/factorial6.png +0 -0
  40. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/hash_set.gv +29 -29
  41. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/highlight.gv +16 -16
  42. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/immutable1.gv +4 -4
  43. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/immutable2.gv +6 -6
  44. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/introspect_depth.gv +56 -56
  45. memory_graph-0.3.26/images/linked_list.gv +55 -0
  46. memory_graph-0.3.26/images/linked_list.png +0 -0
  47. memory_graph-0.3.26/images/linked_list.py +35 -0
  48. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/many_types.gv +12 -12
  49. memory_graph-0.3.26/images/memory_graph.gv +70 -0
  50. memory_graph-0.3.26/images/memory_graph.pdf +0 -0
  51. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/mutable1.gv +4 -4
  52. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/mutable2.gv +4 -4
  53. memory_graph-0.3.26/images/my_graph.gv +31 -0
  54. memory_graph-0.3.26/images/my_graph.pdf +0 -0
  55. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/not_node_types1.gv +6 -6
  56. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/not_node_types2.gv +14 -14
  57. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set0.gv +11 -11
  58. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set0.png +0 -0
  59. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set1.gv +17 -17
  60. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set1.png +0 -0
  61. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set10.gv +36 -36
  62. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set10.png +0 -0
  63. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set11.gv +31 -31
  64. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set11.png +0 -0
  65. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set12.gv +31 -31
  66. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set12.png +0 -0
  67. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set13.gv +36 -36
  68. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set13.png +0 -0
  69. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set14.gv +41 -41
  70. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set14.png +0 -0
  71. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set15.gv +43 -43
  72. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set15.png +0 -0
  73. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set16.gv +40 -40
  74. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set16.png +0 -0
  75. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set17.gv +40 -40
  76. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set17.png +0 -0
  77. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set18.gv +45 -45
  78. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set18.png +0 -0
  79. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set19.gv +47 -47
  80. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set19.png +0 -0
  81. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set2.gv +22 -22
  82. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set2.png +0 -0
  83. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set20.gv +44 -44
  84. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set20.png +0 -0
  85. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set21.gv +39 -39
  86. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set21.png +0 -0
  87. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set22.gv +34 -34
  88. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set22.png +0 -0
  89. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set23.gv +28 -28
  90. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set23.png +0 -0
  91. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set3.gv +27 -27
  92. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set3.png +0 -0
  93. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set4.gv +32 -32
  94. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set4.png +0 -0
  95. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set5.gv +34 -34
  96. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set5.png +0 -0
  97. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set6.gv +32 -32
  98. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set6.png +0 -0
  99. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set7.gv +32 -32
  100. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set7.png +0 -0
  101. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set8.gv +37 -37
  102. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set8.png +0 -0
  103. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set9.gv +39 -39
  104. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set9.png +0 -0
  105. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/rebinding1.gv +4 -4
  106. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/rebinding2.gv +6 -6
  107. memory_graph-0.3.26/images/vscode_copying.gif +0 -0
  108. {memory_graph-0.3.24 → memory_graph-0.3.26}/memory_graph/__init__.py +1 -1
  109. {memory_graph-0.3.24 → memory_graph-0.3.26}/memory_graph/memory_to_nodes.py +1 -1
  110. {memory_graph-0.3.24 → memory_graph-0.3.26/memory_graph.egg-info}/PKG-INFO +30 -36
  111. {memory_graph-0.3.24 → memory_graph-0.3.26}/memory_graph.egg-info/SOURCES.txt +1 -0
  112. {memory_graph-0.3.24 → memory_graph-0.3.26}/setup.py +2 -2
  113. memory_graph-0.3.24/images/linked_list.gv +0 -69
  114. memory_graph-0.3.24/images/linked_list.png +0 -0
  115. memory_graph-0.3.24/images/linked_list.py +0 -39
  116. memory_graph-0.3.24/images/memory_graph.gv +0 -178
  117. memory_graph-0.3.24/images/memory_graph.pdf +0 -0
  118. memory_graph-0.3.24/images/my_graph.gv +0 -35
  119. memory_graph-0.3.24/images/my_graph.pdf +0 -0
  120. {memory_graph-0.3.24 → memory_graph-0.3.26}/LICENSE.txt +0 -0
  121. {memory_graph-0.3.24 → memory_graph-0.3.26}/MANIFEST.in +0 -0
  122. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/.ipynb_checkpoints/jupyter_example-checkpoint.ipynb +0 -0
  123. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/add_one.png +0 -0
  124. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/add_one.py +0 -0
  125. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/avltree.py +0 -0
  126. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/avltree.py~ +0 -0
  127. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/avltree_dir.png +0 -0
  128. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/avltree_fail.gv +0 -0
  129. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/avltree_fail.png +0 -0
  130. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/avltree_key_value.png +0 -0
  131. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/avltree_leaf.png +0 -0
  132. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/avltree_linear.png +0 -0
  133. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/avltree_table.png +0 -0
  134. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/bin_tree.png +0 -0
  135. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/bin_tree.py +0 -0
  136. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/bin_tree2.py +0 -0
  137. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/bin_tree2.py~ +0 -0
  138. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/copies.png +0 -0
  139. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/copies.py +0 -0
  140. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/copy_method.png +0 -0
  141. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/copy_method.py +0 -0
  142. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/create_gif.sh +0 -0
  143. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/create_images.sh +0 -0
  144. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/debug_vscode.png +0 -0
  145. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/debugging.gif +0 -0
  146. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/debugging.py +0 -0
  147. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/depth.gv +0 -0
  148. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/depth.png +0 -0
  149. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/extension_numpy.png +0 -0
  150. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/extension_numpy.py +0 -0
  151. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/extension_pandas.png +0 -0
  152. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/extension_pandas.py +0 -0
  153. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/factorial.gif +0 -0
  154. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/factorial.py +0 -0
  155. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/factorial01.gv +0 -0
  156. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/factorial02.gv +0 -0
  157. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/factorial03.gv +0 -0
  158. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/factorial04.gv +0 -0
  159. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/factorial05.gv +0 -0
  160. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/factorial06.gv +0 -0
  161. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/factorial07.gv +0 -0
  162. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/hash_set.png +0 -0
  163. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/hash_set.py +0 -0
  164. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/hidden_edges.gv +0 -0
  165. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/hidden_edges.png +0 -0
  166. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/hidden_edges.py +0 -0
  167. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/hidden_edges.py~ +0 -0
  168. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/highlight.png +0 -0
  169. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/highlight.py +0 -0
  170. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/immutable.py +0 -0
  171. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/immutable1.png +0 -0
  172. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/immutable2.png +0 -0
  173. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/introspect_depth.png +0 -0
  174. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/introspect_depth.py +0 -0
  175. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/introspect_depth.py~ +0 -0
  176. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/ipython.png +0 -0
  177. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/jupyter_example.png +0 -0
  178. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/log.txt +0 -0
  179. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/many_types.png +0 -0
  180. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/many_types.py +0 -0
  181. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/memory_graph.gv.pdf +0 -0
  182. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/mutable.py +0 -0
  183. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/mutable1.png +0 -0
  184. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/mutable2.png +0 -0
  185. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/name_rebinding.py +0 -0
  186. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/not_node_types.py +0 -0
  187. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/not_node_types.py~ +0 -0
  188. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/not_node_types1.png +0 -0
  189. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/not_node_types2.png +0 -0
  190. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set.gif +0 -0
  191. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/power_set.py +0 -0
  192. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/pyodide.png +0 -0
  193. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/rebinding1.png +0 -0
  194. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/rebinding2.png +0 -0
  195. {memory_graph-0.3.24 → memory_graph-0.3.26}/images/uva.png +0 -0
  196. {memory_graph-0.3.24 → memory_graph-0.3.26}/install.txt +0 -0
  197. {memory_graph-0.3.24 → memory_graph-0.3.26}/memory_graph/call_stack.py +0 -0
  198. {memory_graph-0.3.24 → memory_graph-0.3.26}/memory_graph/config.py +0 -0
  199. {memory_graph-0.3.24 → memory_graph-0.3.26}/memory_graph/config_default.py +0 -0
  200. {memory_graph-0.3.24 → memory_graph-0.3.26}/memory_graph/config_helpers.py +0 -0
  201. {memory_graph-0.3.24 → memory_graph-0.3.26}/memory_graph/extension_numpy.py +0 -0
  202. {memory_graph-0.3.24 → memory_graph-0.3.26}/memory_graph/extension_pandas.py +0 -0
  203. {memory_graph-0.3.24 → memory_graph-0.3.26}/memory_graph/html_table.py +0 -0
  204. {memory_graph-0.3.24 → memory_graph-0.3.26}/memory_graph/list_view.py +0 -0
  205. {memory_graph-0.3.24 → memory_graph-0.3.26}/memory_graph/node_base.py +0 -0
  206. {memory_graph-0.3.24 → memory_graph-0.3.26}/memory_graph/node_key_value.py +0 -0
  207. {memory_graph-0.3.24 → memory_graph-0.3.26}/memory_graph/node_leaf.py +0 -0
  208. {memory_graph-0.3.24 → memory_graph-0.3.26}/memory_graph/node_linear.py +0 -0
  209. {memory_graph-0.3.24 → memory_graph-0.3.26}/memory_graph/node_table.py +0 -0
  210. {memory_graph-0.3.24 → memory_graph-0.3.26}/memory_graph/sequence.py +0 -0
  211. {memory_graph-0.3.24 → memory_graph-0.3.26}/memory_graph/slicer.py +0 -0
  212. {memory_graph-0.3.24 → memory_graph-0.3.26}/memory_graph/slices.py +0 -0
  213. {memory_graph-0.3.24 → memory_graph-0.3.26}/memory_graph/slices_iterator.py +0 -0
  214. {memory_graph-0.3.24 → memory_graph-0.3.26}/memory_graph/slices_table_iterator.py +0 -0
  215. {memory_graph-0.3.24 → memory_graph-0.3.26}/memory_graph/test.py +0 -0
  216. {memory_graph-0.3.24 → memory_graph-0.3.26}/memory_graph/test_max_graph_depth.py +0 -0
  217. {memory_graph-0.3.24 → memory_graph-0.3.26}/memory_graph/test_memory_graph.py +0 -0
  218. {memory_graph-0.3.24 → memory_graph-0.3.26}/memory_graph/test_memory_to_nodes.py +0 -0
  219. {memory_graph-0.3.24 → memory_graph-0.3.26}/memory_graph/test_sequence.py +0 -0
  220. {memory_graph-0.3.24 → memory_graph-0.3.26}/memory_graph/test_slicer.py +0 -0
  221. {memory_graph-0.3.24 → memory_graph-0.3.26}/memory_graph/test_slices.py +0 -0
  222. {memory_graph-0.3.24 → memory_graph-0.3.26}/memory_graph/test_slices_iterator.py +0 -0
  223. {memory_graph-0.3.24 → memory_graph-0.3.26}/memory_graph/utils.py +0 -0
  224. {memory_graph-0.3.24 → memory_graph-0.3.26}/memory_graph.egg-info/dependency_links.txt +0 -0
  225. {memory_graph-0.3.24 → memory_graph-0.3.26}/memory_graph.egg-info/requires.txt +0 -0
  226. {memory_graph-0.3.24 → memory_graph-0.3.26}/memory_graph.egg-info/top_level.txt +0 -0
  227. {memory_graph-0.3.24 → memory_graph-0.3.26}/setup.cfg +0 -0
  228. {memory_graph-0.3.24 → memory_graph-0.3.26}/src/auto_memory_graph.py +0 -0
  229. {memory_graph-0.3.24 → memory_graph-0.3.26}/src/jupyter_example.ipynb +0 -0
  230. {memory_graph-0.3.24 → memory_graph-0.3.26}/src/pyodide.html +0 -0
  231. {memory_graph-0.3.24 → memory_graph-0.3.26}/uml/memory_graph.uxf +0 -0
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: memory_graph
3
- Version: 0.3.24
4
- Summary: Generate intuitive graphs of your Python data, great for debugging and understanding complex relationships.
3
+ Version: 0.3.26
4
+ Summary: Teaching tool and debugging aid in context of references, mutable data types, and shallow and deep copy.
5
5
  Home-page: https://github.com/bterwijn/memory_graph
6
6
  Author: Bas Terwijn
7
7
  Author-email: bterwijn@gmail.com
@@ -24,6 +24,11 @@ pip install --upgrade memory_graph
24
24
  ```
25
25
  Additionally [Graphviz](https://graphviz.org/download/) needs to be installed.
26
26
 
27
+ # Videos #
28
+ | [![Quick Intro](https://img.youtube.com/vi/23_bHcr7hqo/0.jpg)](https://www.youtube.com/watch?v=23_bHcr7hqo) | [![Mutability](https://img.youtube.com/vi/pvIJgHCaXhU/0.jpg)](https://www.youtube.com/watch?v=pvIJgHCaXhU) |
29
+ |:--:|:--:|
30
+ | [Quick Intro](https://www.youtube.com/watch?v=23_bHcr7hqo) | [Mutability](https://www.youtube.com/watch?v=pvIJgHCaXhU) |
31
+
27
32
  # Memory Graph #
28
33
  For program understanding and debugging, the [memory_graph](https://pypi.org/project/memory-graph/) package can visualize your data, supporting many different data types, including but not limited to:
29
34
 
@@ -41,7 +46,7 @@ mg.show(data)
41
46
  ```
42
47
  ![many_types.png](https://raw.githubusercontent.com/bterwijn/memory_graph/main/images/many_types.png)
43
48
 
44
- Instead of showing the graph on screen you can also render it to an output file of your choosing (see [Graphviz Output Formats](https://graphviz.org/docs/outputs/)) using for example:
49
+ Instead of showing the graph on screen you can also render it to an output file (see [Graphviz Output Formats](https://graphviz.org/docs/outputs/)) using for example:
45
50
 
46
51
  ```python
47
52
  mg.render(data, "my_graph.pdf")
@@ -93,13 +98,6 @@ identical?: True
93
98
  ```
94
99
  A better way to understand what data is shared is to draw a graph of the data using the [memory_graph](https://pypi.org/project/memory-graph/) package.
95
100
 
96
- # Videos #
97
-
98
- | [![Mutability](https://img.youtube.com/vi/pvIJgHCaXhU/0.jpg)](https://www.youtube.com/watch?v=pvIJgHCaXhU) |
99
- |:--:|
100
- | [Mutability](https://www.youtube.com/watch?v=pvIJgHCaXhU) |
101
-
102
-
103
101
  # Chapters #
104
102
 
105
103
  [Python Data Model](#python-data-model)
@@ -364,7 +362,7 @@ The ```mg.stack()``` doesn't work well in *watch* context in most debuggers beca
364
362
  | **Visual Studio Code** | `mg.stack_vscode()` |
365
363
  | **Pycharm** | `mg.stack_pycharm()` |
366
364
 
367
- ![debug_vscode.png](https://raw.githubusercontent.com/bterwijn/memory_graph/main/images/debug_vscode.png)
365
+ ![vscode_copying.gif](https://raw.githubusercontent.com/bterwijn/memory_graph/main/images/vscode_copying.gif)
368
366
 
369
367
  ## Other Debuggers ##
370
368
  For other debuggers, invoke this function within the *watch* context. Then, in the "call_stack.txt" file, identify the slice of functions you wish to include in the call stack.
@@ -418,35 +416,31 @@ import memory_graph as mg
418
416
  import random
419
417
  random.seed(0) # use same random numbers each run
420
418
 
421
- class Node:
419
+ class Linked_List:
422
420
 
423
- def __init__(self, value):
424
- self.prev = None
421
+ def __init__(self, value=None, prev=None, next=None):
422
+ self.prev = prev
425
423
  self.value = value
426
- self.next = None
427
-
428
- class LinkedList:
429
-
430
- def __init__(self):
431
- self.head = None
432
- self.tail = None
424
+ self.next = next
433
425
 
434
426
  def add_front(self, value):
435
- new_node = Node(value)
436
- if self.head is None:
437
- self.head = new_node
438
- self.tail = new_node
427
+ if self.value == None:
428
+ self.value = value
429
+ elif self.next is None:
430
+ new_node = Linked_List(value)
431
+ self.prev = new_node
432
+ self.next = new_node
439
433
  else:
440
- new_node.next = self.head
441
- self.head.prev = new_node
442
- self.head = new_node
443
- mg.block(mg.show, locals()) # <--- draw locals
434
+ new_node = Linked_List(value, self.next)
435
+ self.next.next = new_node
436
+ self.next = new_node
444
437
 
445
- linked_list = LinkedList()
438
+ linked_list = Linked_List()
446
439
  n = 100
447
440
  for i in range(n):
448
- new_value = random.randrange(n)
449
- linked_list.add_front(new_value)
441
+ value = random.randrange(n)
442
+ linked_list.add_front(value)
443
+ mg.show(locals())
450
444
  ```
451
445
  ![linked_list.png](https://raw.githubusercontent.com/bterwijn/memory_graph/main/images/linked_list.png)
452
446
 
@@ -581,7 +575,7 @@ mg.render(locals(), 'not_node_types2.png')
581
575
  |:-----------------------------------------------------------:|:-------------------------------------------------------------:|
582
576
  | not_node_types1.png — simplified | not_node_types2.png — technically correct |
583
577
 
584
- Additionally, the simplification hides away the [reuse of small int values](https://docs.python.org/3/c-api/long.html#c.PyLong_FromLong) in the current CPython implementation, an optimization that might otherwise confuse beginner Python programmers. For instance, after executing `a[1]+=1; b[1]+=1` the `201` value is, maybe surprisingly, still shared between `a` and `b`, whereas executing `a[2]+=1; b[2]+=1` does not result in sharing the `301` value.
578
+ Additionally, the simplification hides away the [reuse of small int values \[-5, 256\]](https://docs.python.org/3/c-api/long.html#c.PyLong_FromLong) in the current CPython implementation, an optimization that might otherwise confuse beginner Python programmers. For instance, after executing `a[1]+=1; b[1]+=1` the `201` value is, maybe surprisingly, still shared between `a` and `b`, whereas executing `a[2]+=1; b[2]+=1` does not result in sharing the `301` value.
585
579
 
586
580
  ## Temporary Configuration ##
587
581
  In addition to the global configuration, a temporary configuration can be set for a single `show()` or `render()` call to change the colors, orientation, and slicer. This example highlights a particular list element in red, gives it a horizontal orientation, and overwrites the default slicer for lists:
@@ -777,9 +771,9 @@ mg.show(locals())
777
771
 
778
772
 
779
773
  # Introspection Depth #
780
- To limit the size of the graph the maximum depth of the graph is set by `mg.config.max_graph_depth`. Additionally for each type a depth can be set to further limit the graph, as is done for type `B` in the example below. Scissors indicate where the graph is cut. Alternatively the `id()` of a data elements can be used to further limit the graph, as is done for variable `c`.
774
+ To limit the size of the graph the maximum depth of the graph is set by `mg.config.max_graph_depth`. Additionally for each type a depth can be set to further limit the graph, as is done for type `B` in the example below. Scissors indicate where the graph is cut short. Alternatively the `id()` of a data elements can be used to limit the graph for that specific element, as is done for the value referenced by variable `c`.
781
775
 
782
- The value of variable `x` is shown as it is at depth 1 from the root of the graph, but as it can also be reached via `b2` that path need to be shown as well, so this overwrites the depth limit set for type `B`.
776
+ The value of variable `x` is shown as it is at depth 1 from the root of the graph, but as it can also be reached via `b2`, that path need to be shown as well to avoid confusion, so this overwrites the depth limit set for type `B`.
783
777
 
784
778
  ```python
785
779
  import memory_graph as mg
@@ -830,7 +824,7 @@ mg.show(locals())
830
824
 
831
825
  ## Hidden Edges ##
832
826
 
833
- As the value of `x` is shown in the graph, we would want to show all the references to it, but the Slicer hides references by slicing the list to keep the graph small. The `max_missing_edges` variable determines how many hidden references to `x` we show. If there are more references then we show, then theses hidden references are shown with dashed lines to indicate some references are left out.
827
+ As the value of `x` is shown in the graph, we would want to show all the references to it, but the default list Slicer hides references by slicing the list to keep the graph small. The `max_missing_edges` variable then determines how many additional hidden references to `x` we show. If there are more references then we show, then theses hidden references are shown with dashed lines to indicate some references are left out.
834
828
 
835
829
  ```python
836
830
  import memory_graph as mg
@@ -5,6 +5,11 @@ pip install --upgrade memory_graph
5
5
  ```
6
6
  Additionally [Graphviz](https://graphviz.org/download/) needs to be installed.
7
7
 
8
+ # Videos #
9
+ | [![Quick Intro](https://img.youtube.com/vi/23_bHcr7hqo/0.jpg)](https://www.youtube.com/watch?v=23_bHcr7hqo) | [![Mutability](https://img.youtube.com/vi/pvIJgHCaXhU/0.jpg)](https://www.youtube.com/watch?v=pvIJgHCaXhU) |
10
+ |:--:|:--:|
11
+ | [Quick Intro](https://www.youtube.com/watch?v=23_bHcr7hqo) | [Mutability](https://www.youtube.com/watch?v=pvIJgHCaXhU) |
12
+
8
13
  # Memory Graph #
9
14
  For program understanding and debugging, the [memory_graph](https://pypi.org/project/memory-graph/) package can visualize your data, supporting many different data types, including but not limited to:
10
15
 
@@ -22,7 +27,7 @@ mg.show(data)
22
27
  ```
23
28
  ![many_types.png](https://raw.githubusercontent.com/bterwijn/memory_graph/main/images/many_types.png)
24
29
 
25
- Instead of showing the graph on screen you can also render it to an output file of your choosing (see [Graphviz Output Formats](https://graphviz.org/docs/outputs/)) using for example:
30
+ Instead of showing the graph on screen you can also render it to an output file (see [Graphviz Output Formats](https://graphviz.org/docs/outputs/)) using for example:
26
31
 
27
32
  ```python
28
33
  mg.render(data, "my_graph.pdf")
@@ -74,13 +79,6 @@ identical?: True
74
79
  ```
75
80
  A better way to understand what data is shared is to draw a graph of the data using the [memory_graph](https://pypi.org/project/memory-graph/) package.
76
81
 
77
- # Videos #
78
-
79
- | [![Mutability](https://img.youtube.com/vi/pvIJgHCaXhU/0.jpg)](https://www.youtube.com/watch?v=pvIJgHCaXhU) |
80
- |:--:|
81
- | [Mutability](https://www.youtube.com/watch?v=pvIJgHCaXhU) |
82
-
83
-
84
82
  # Chapters #
85
83
 
86
84
  [Python Data Model](#python-data-model)
@@ -345,7 +343,7 @@ The ```mg.stack()``` doesn't work well in *watch* context in most debuggers beca
345
343
  | **Visual Studio Code** | `mg.stack_vscode()` |
346
344
  | **Pycharm** | `mg.stack_pycharm()` |
347
345
 
348
- ![debug_vscode.png](https://raw.githubusercontent.com/bterwijn/memory_graph/main/images/debug_vscode.png)
346
+ ![vscode_copying.gif](https://raw.githubusercontent.com/bterwijn/memory_graph/main/images/vscode_copying.gif)
349
347
 
350
348
  ## Other Debuggers ##
351
349
  For other debuggers, invoke this function within the *watch* context. Then, in the "call_stack.txt" file, identify the slice of functions you wish to include in the call stack.
@@ -399,35 +397,31 @@ import memory_graph as mg
399
397
  import random
400
398
  random.seed(0) # use same random numbers each run
401
399
 
402
- class Node:
400
+ class Linked_List:
403
401
 
404
- def __init__(self, value):
405
- self.prev = None
402
+ def __init__(self, value=None, prev=None, next=None):
403
+ self.prev = prev
406
404
  self.value = value
407
- self.next = None
408
-
409
- class LinkedList:
410
-
411
- def __init__(self):
412
- self.head = None
413
- self.tail = None
405
+ self.next = next
414
406
 
415
407
  def add_front(self, value):
416
- new_node = Node(value)
417
- if self.head is None:
418
- self.head = new_node
419
- self.tail = new_node
408
+ if self.value == None:
409
+ self.value = value
410
+ elif self.next is None:
411
+ new_node = Linked_List(value)
412
+ self.prev = new_node
413
+ self.next = new_node
420
414
  else:
421
- new_node.next = self.head
422
- self.head.prev = new_node
423
- self.head = new_node
424
- mg.block(mg.show, locals()) # <--- draw locals
415
+ new_node = Linked_List(value, self.next)
416
+ self.next.next = new_node
417
+ self.next = new_node
425
418
 
426
- linked_list = LinkedList()
419
+ linked_list = Linked_List()
427
420
  n = 100
428
421
  for i in range(n):
429
- new_value = random.randrange(n)
430
- linked_list.add_front(new_value)
422
+ value = random.randrange(n)
423
+ linked_list.add_front(value)
424
+ mg.show(locals())
431
425
  ```
432
426
  ![linked_list.png](https://raw.githubusercontent.com/bterwijn/memory_graph/main/images/linked_list.png)
433
427
 
@@ -562,7 +556,7 @@ mg.render(locals(), 'not_node_types2.png')
562
556
  |:-----------------------------------------------------------:|:-------------------------------------------------------------:|
563
557
  | not_node_types1.png — simplified | not_node_types2.png — technically correct |
564
558
 
565
- Additionally, the simplification hides away the [reuse of small int values](https://docs.python.org/3/c-api/long.html#c.PyLong_FromLong) in the current CPython implementation, an optimization that might otherwise confuse beginner Python programmers. For instance, after executing `a[1]+=1; b[1]+=1` the `201` value is, maybe surprisingly, still shared between `a` and `b`, whereas executing `a[2]+=1; b[2]+=1` does not result in sharing the `301` value.
559
+ Additionally, the simplification hides away the [reuse of small int values \[-5, 256\]](https://docs.python.org/3/c-api/long.html#c.PyLong_FromLong) in the current CPython implementation, an optimization that might otherwise confuse beginner Python programmers. For instance, after executing `a[1]+=1; b[1]+=1` the `201` value is, maybe surprisingly, still shared between `a` and `b`, whereas executing `a[2]+=1; b[2]+=1` does not result in sharing the `301` value.
566
560
 
567
561
  ## Temporary Configuration ##
568
562
  In addition to the global configuration, a temporary configuration can be set for a single `show()` or `render()` call to change the colors, orientation, and slicer. This example highlights a particular list element in red, gives it a horizontal orientation, and overwrites the default slicer for lists:
@@ -758,9 +752,9 @@ mg.show(locals())
758
752
 
759
753
 
760
754
  # Introspection Depth #
761
- To limit the size of the graph the maximum depth of the graph is set by `mg.config.max_graph_depth`. Additionally for each type a depth can be set to further limit the graph, as is done for type `B` in the example below. Scissors indicate where the graph is cut. Alternatively the `id()` of a data elements can be used to further limit the graph, as is done for variable `c`.
755
+ To limit the size of the graph the maximum depth of the graph is set by `mg.config.max_graph_depth`. Additionally for each type a depth can be set to further limit the graph, as is done for type `B` in the example below. Scissors indicate where the graph is cut short. Alternatively the `id()` of a data elements can be used to limit the graph for that specific element, as is done for the value referenced by variable `c`.
762
756
 
763
- The value of variable `x` is shown as it is at depth 1 from the root of the graph, but as it can also be reached via `b2` that path need to be shown as well, so this overwrites the depth limit set for type `B`.
757
+ The value of variable `x` is shown as it is at depth 1 from the root of the graph, but as it can also be reached via `b2`, that path need to be shown as well to avoid confusion, so this overwrites the depth limit set for type `B`.
764
758
 
765
759
  ```python
766
760
  import memory_graph as mg
@@ -811,7 +805,7 @@ mg.show(locals())
811
805
 
812
806
  ## Hidden Edges ##
813
807
 
814
- As the value of `x` is shown in the graph, we would want to show all the references to it, but the Slicer hides references by slicing the list to keep the graph small. The `max_missing_edges` variable determines how many hidden references to `x` we show. If there are more references then we show, then theses hidden references are shown with dashed lines to indicate some references are left out.
808
+ As the value of `x` is shown in the graph, we would want to show all the references to it, but the default list Slicer hides references by slicing the list to keep the graph small. The `max_missing_edges` variable then determines how many additional hidden references to `x` we show. If there are more references then we show, then theses hidden references are shown with dashed lines to indicate some references are left out.
815
809
 
816
810
  ```python
817
811
  import memory_graph as mg
@@ -1,6 +1,6 @@
1
1
  digraph memory_graph {
2
2
  node [shape=plaintext]
3
- node137952073011776 [label=<
3
+ node124722886398528 [label=<
4
4
  <TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="lightcoral" PORT="table">
5
5
  <TR><TD BORDER="0"><font color="#505050">0</font></TD><TD BORDER="1"> 4 </TD></TR>
6
6
  <TR><TD BORDER="0"><font color="#505050">1</font></TD><TD BORDER="1"> 3 </TD></TR>
@@ -8,30 +8,30 @@ digraph memory_graph {
8
8
  <TR><TD BORDER="0"><font color="#505050">3</font></TD><TD BORDER="1"> 1 </TD></TR>
9
9
  </TABLE>
10
10
  > xlabel=list]
11
- node137952062761408 [label=<
11
+ node124722875623872 [label=<
12
12
  <TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="orange" PORT="table">
13
13
  <TR><TD BORDER="0"><font color="#505050">0</font></TD><TD BORDER="1"> 4 </TD></TR>
14
14
  <TR><TD BORDER="0"><font color="#505050">1</font></TD><TD BORDER="1"> 3 </TD></TR>
15
15
  <TR><TD BORDER="0"><font color="#505050">2</font></TD><TD BORDER="1"> 2 </TD></TR>
16
16
  </TABLE>
17
17
  > xlabel=tuple]
18
- node137952073009984 [label=<
18
+ node124722886396736 [label=<
19
19
  <TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="lightcoral" PORT="table">
20
20
  <TR><TD BORDER="0"><font color="#505050">0</font></TD><TD BORDER="1"> 4 </TD></TR>
21
21
  <TR><TD BORDER="0"><font color="#505050">1</font></TD><TD BORDER="1"> 3 </TD></TR>
22
22
  <TR><TD BORDER="0"><font color="#505050">2</font></TD><TD BORDER="1"> 2 </TD></TR>
23
23
  </TABLE>
24
24
  > xlabel=list]
25
- node137952062763008 [label=<
25
+ node124722875625472 [label=<
26
26
  <TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="#60a5ff" PORT="table">
27
27
  <TR><TD BORDER="1" STYLE="ROUNDED"> a </TD><TD BORDER="1" STYLE="ROUNDED"> b </TD><TD BORDER="1" STYLE="ROUNDED"> c </TD></TR>
28
28
  <TR><TD BORDER="1" PORT="ref0"> </TD><TD BORDER="1" PORT="ref1"> </TD><TD BORDER="1" PORT="ref2"> </TD></TR>
29
29
  </TABLE>
30
30
  > xlabel=dict]
31
- node137952062763008:ref0 -> node137952073011776:table [style=solid]
32
- node137952062763008:ref1 -> node137952062761408:table [style=solid]
33
- node137952062763008:ref2 -> node137952073009984:table [style=solid]
34
- node137952062660080 [label=<
31
+ node124722875625472:ref0 -> node124722886398528:table [style=solid]
32
+ node124722875625472:ref1 -> node124722875623872:table [style=solid]
33
+ node124722875625472:ref2 -> node124722886396736:table [style=solid]
34
+ node124722875522544 [label=<
35
35
  <TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="orange" PORT="table">
36
36
  <TR><TD BORDER="0"><font color="#505050">0</font></TD><TD BORDER="1"> 4 </TD></TR>
37
37
  <TR><TD BORDER="0"><font color="#505050">1</font></TD><TD BORDER="1"> 3 </TD></TR>
@@ -39,7 +39,7 @@ digraph memory_graph {
39
39
  <TR><TD BORDER="0"><font color="#505050">3</font></TD><TD BORDER="1"> 1 </TD></TR>
40
40
  </TABLE>
41
41
  > xlabel=tuple]
42
- node137952062651776 [label=<
42
+ node124722875514240 [label=<
43
43
  <TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="lightcoral" PORT="table">
44
44
  <TR><TD BORDER="0"><font color="#505050">0</font></TD><TD BORDER="1"> 4 </TD></TR>
45
45
  <TR><TD BORDER="0"><font color="#505050">1</font></TD><TD BORDER="1"> 3 </TD></TR>
@@ -47,23 +47,23 @@ digraph memory_graph {
47
47
  <TR><TD BORDER="0"><font color="#505050">3</font></TD><TD BORDER="1"> 1 </TD></TR>
48
48
  </TABLE>
49
49
  > xlabel=list]
50
- node137952062646464 [label=<
50
+ node124722875508928 [label=<
51
51
  <TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="#60a5ff" PORT="table">
52
52
  <TR><TD BORDER="1" STYLE="ROUNDED"> a </TD><TD BORDER="1" STYLE="ROUNDED"> b </TD><TD BORDER="1" STYLE="ROUNDED"> c </TD></TR>
53
53
  <TR><TD BORDER="1" PORT="ref0"> </TD><TD BORDER="1" PORT="ref1"> </TD><TD BORDER="1" PORT="ref2"> </TD></TR>
54
54
  </TABLE>
55
55
  > xlabel=dict]
56
- node137952062646464:ref0 -> node137952073011776:table [style=solid]
57
- node137952062646464:ref1 -> node137952062660080:table [style=solid]
58
- node137952062646464:ref2 -> node137952062651776:table [style=solid]
59
- node137952060305680 [label=<
56
+ node124722875508928:ref0 -> node124722886398528:table [style=solid]
57
+ node124722875508928:ref1 -> node124722875522544:table [style=solid]
58
+ node124722875508928:ref2 -> node124722875514240:table [style=solid]
59
+ node124722873168144 [label=<
60
60
  <TABLE BORDER="3" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="khaki" PORT="table">
61
61
  <TR><TD BORDER="1" STYLE="ROUNDED"> 0: &lt;module&gt; </TD><TD BORDER="1" STYLE="ROUNDED"> 1: add_one </TD></TR>
62
62
  <TR><TD BORDER="1" PORT="ref0"> </TD><TD BORDER="1" PORT="ref1"> </TD></TR>
63
63
  </TABLE>
64
64
  > xlabel=call_stack]
65
- node137952060305680:ref0 -> node137952062763008:table [style=solid]
66
- node137952060305680:ref1 -> node137952062646464:table [style=solid]
67
- subgraph { rank=same; node137952062763008 -> node137952062646464[weight=10, style=invis]; }
68
- subgraph { rank=same; node137952073011776 -> node137952062761408 -> node137952073009984 -> node137952062660080 -> node137952062651776[weight=10, style=invis]; }
65
+ node124722873168144:ref0 -> node124722875625472:table [style=solid]
66
+ node124722873168144:ref1 -> node124722875508928:table [style=solid]
67
+ subgraph { rank=same; node124722875625472 -> node124722875508928[weight=10, style=invis]; }
68
+ subgraph { rank=same; node124722886398528 -> node124722875623872 -> node124722886396736 -> node124722875522544 -> node124722875514240[weight=10, style=invis]; }
69
69
  }
@@ -1,6 +1,6 @@
1
1
  digraph memory_graph {
2
2
  node [shape=plaintext]
3
- node134306137677296 [label=<
3
+ node124372962549232 [label=<
4
4
  <TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="sandybrown" PORT="table">
5
5
  <TR><TD BORDER="0"><font color="#505050">0</font></TD><TD BORDER="1"> __class__ </TD></TR>
6
6
  <TR><TD BORDER="0"><font color="#505050">1</font></TD><TD BORDER="1"> __delattr__ </TD></TR>
@@ -38,18 +38,18 @@ digraph memory_graph {
38
38
  <TR><TD BORDER="0"><font color="#505050">33</font></TD><TD BORDER="1"> value </TD></TR>
39
39
  </TABLE>
40
40
  > xlabel="Node"]
41
- node134306137855984 [label=<
41
+ node124372962727920 [label=<
42
42
  <TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="seagreen1" PORT="table">
43
43
  <TR><TD BORDER="1" STYLE="ROUNDED"> _root </TD><TD BORDER="1" STYLE="ROUNDED"> _count </TD></TR>
44
44
  <TR><TD BORDER="1" PORT="ref0"> </TD><TD BORDER="1"> 4 </TD></TR>
45
45
  </TABLE>
46
46
  > xlabel=AVLTree]
47
- node134306137855984:ref0 -> node134306137677296:table [style=solid]
48
- node134306139709120 [label=<
47
+ node124372962727920:ref0 -> node124372962549232:table [style=solid]
48
+ node124372964581056 [label=<
49
49
  <TABLE BORDER="3" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="#60a5ff" PORT="table">
50
50
  <TR><TD BORDER="1" STYLE="ROUNDED"> tree </TD></TR>
51
51
  <TR><TD BORDER="1" PORT="ref0"> </TD></TR>
52
52
  </TABLE>
53
53
  > xlabel=dict]
54
- node134306139709120:ref0 -> node134306137855984:table [style=solid]
54
+ node124372964581056:ref0 -> node124372962727920:table [style=solid]
55
55
  }
@@ -1,6 +1,6 @@
1
1
  digraph memory_graph {
2
2
  node [shape=plaintext]
3
- node134306135313600 [label=<
3
+ node124372960185536 [label=<
4
4
  <TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="sandybrown" PORT="table">
5
5
  <TR><TD BORDER="1" STYLE="ROUNDED"> left </TD><TD BORDER="1"> None </TD></TR>
6
6
  <TR><TD BORDER="1" STYLE="ROUNDED"> key </TD><TD BORDER="1"> 5 </TD></TR>
@@ -8,7 +8,7 @@ digraph memory_graph {
8
8
  <TR><TD BORDER="1" STYLE="ROUNDED"> right </TD><TD BORDER="1"> None </TD></TR>
9
9
  </TABLE>
10
10
  > xlabel="Node"]
11
- node134306135311840 [label=<
11
+ node124372960183776 [label=<
12
12
  <TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="sandybrown" PORT="table">
13
13
  <TR><TD BORDER="1" STYLE="ROUNDED"> left </TD><TD BORDER="1"> None </TD></TR>
14
14
  <TR><TD BORDER="1" STYLE="ROUNDED"> key </TD><TD BORDER="1"> 15 </TD></TR>
@@ -16,34 +16,34 @@ digraph memory_graph {
16
16
  <TR><TD BORDER="1" STYLE="ROUNDED"> right </TD><TD BORDER="1"> None </TD></TR>
17
17
  </TABLE>
18
18
  > xlabel="Node"]
19
- node134306135312000 [label=<
19
+ node124372960183936 [label=<
20
20
  <TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="sandybrown" PORT="table">
21
21
  <TR><TD BORDER="1" STYLE="ROUNDED"> left </TD><TD BORDER="1" STYLE="ROUNDED"> key </TD><TD BORDER="1" STYLE="ROUNDED"> value </TD><TD BORDER="1" STYLE="ROUNDED"> right </TD></TR>
22
22
  <TR><TD BORDER="1" PORT="ref0"> </TD><TD BORDER="1"> 20 </TD><TD BORDER="1"> twenty </TD><TD BORDER="1"> None </TD></TR>
23
23
  </TABLE>
24
24
  > xlabel="Node"]
25
- node134306135312000:ref0 -> node134306135311840:table [style=solid]
26
- node134306137677296 [label=<
25
+ node124372960183936:ref0 -> node124372960183776:table [style=solid]
26
+ node124372962549232 [label=<
27
27
  <TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="sandybrown" PORT="table">
28
28
  <TR><TD BORDER="1" STYLE="ROUNDED"> left </TD><TD BORDER="1" STYLE="ROUNDED"> key </TD><TD BORDER="1" STYLE="ROUNDED"> value </TD><TD BORDER="1" STYLE="ROUNDED"> right </TD></TR>
29
29
  <TR><TD BORDER="1" PORT="ref0"> </TD><TD BORDER="1"> 10 </TD><TD BORDER="1"> ten </TD><TD BORDER="1" PORT="ref1"> </TD></TR>
30
30
  </TABLE>
31
31
  > xlabel="Node"]
32
- node134306137677296:ref0 -> node134306135313600:table [style=solid]
33
- node134306137677296:ref1 -> node134306135312000:table [style=solid]
34
- node134306137855984 [label=<
32
+ node124372962549232:ref0 -> node124372960185536:table [style=solid]
33
+ node124372962549232:ref1 -> node124372960183936:table [style=solid]
34
+ node124372962727920 [label=<
35
35
  <TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="seagreen1" PORT="table">
36
36
  <TR><TD BORDER="1" STYLE="ROUNDED"> _root </TD><TD BORDER="1" STYLE="ROUNDED"> _count </TD></TR>
37
37
  <TR><TD BORDER="1" PORT="ref0"> </TD><TD BORDER="1"> 4 </TD></TR>
38
38
  </TABLE>
39
39
  > xlabel=AVLTree]
40
- node134306137855984:ref0 -> node134306137677296:table [style=solid]
41
- node134306139709120 [label=<
40
+ node124372962727920:ref0 -> node124372962549232:table [style=solid]
41
+ node124372964581056 [label=<
42
42
  <TABLE BORDER="3" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="#60a5ff" PORT="table">
43
43
  <TR><TD BORDER="1" STYLE="ROUNDED"> tree </TD></TR>
44
44
  <TR><TD BORDER="1" PORT="ref0"> </TD></TR>
45
45
  </TABLE>
46
46
  > xlabel=dict]
47
- node134306139709120:ref0 -> node134306137855984:table [style=solid]
48
- subgraph { rank=same; node134306135313600 -> node134306135312000[weight=10, style=invis]; }
47
+ node124372964581056:ref0 -> node124372962727920:table [style=solid]
48
+ subgraph { rank=same; node124372960185536 -> node124372960183936[weight=10, style=invis]; }
49
49
  }
@@ -1,22 +1,22 @@
1
1
  digraph memory_graph {
2
2
  node [shape=plaintext]
3
- node134306137677296 [label=<
3
+ node124372962549232 [label=<
4
4
  <TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="sandybrown" PORT="table">
5
5
  <TR><TD BORDER="1"> key:10 value:ten </TD></TR>
6
6
  </TABLE>
7
7
  > xlabel="Node"]
8
- node134306137855984 [label=<
8
+ node124372962727920 [label=<
9
9
  <TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="seagreen1" PORT="table">
10
10
  <TR><TD BORDER="1" STYLE="ROUNDED"> _root </TD><TD BORDER="1" STYLE="ROUNDED"> _count </TD></TR>
11
11
  <TR><TD BORDER="1" PORT="ref0"> </TD><TD BORDER="1"> 4 </TD></TR>
12
12
  </TABLE>
13
13
  > xlabel=AVLTree]
14
- node134306137855984:ref0 -> node134306137677296:table [style=solid]
15
- node134306139709120 [label=<
14
+ node124372962727920:ref0 -> node124372962549232:table [style=solid]
15
+ node124372964581056 [label=<
16
16
  <TABLE BORDER="3" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="#60a5ff" PORT="table">
17
17
  <TR><TD BORDER="1" STYLE="ROUNDED"> tree </TD></TR>
18
18
  <TR><TD BORDER="1" PORT="ref0"> </TD></TR>
19
19
  </TABLE>
20
20
  > xlabel=dict]
21
- node134306139709120:ref0 -> node134306137855984:table [style=solid]
21
+ node124372964581056:ref0 -> node124372962727920:table [style=solid]
22
22
  }
@@ -1,6 +1,6 @@
1
1
  digraph memory_graph {
2
2
  node [shape=plaintext]
3
- node134306135313600 [label=<
3
+ node124372960185536 [label=<
4
4
  <TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="sandybrown" PORT="table">
5
5
  <TR><TD BORDER="0"><font color="#505050">0</font></TD><TD BORDER="1"> left: </TD></TR>
6
6
  <TR><TD BORDER="0"><font color="#505050">1</font></TD><TD BORDER="1"> None </TD></TR>
@@ -12,7 +12,7 @@ digraph memory_graph {
12
12
  <TR><TD BORDER="0"><font color="#505050">7</font></TD><TD BORDER="1"> None </TD></TR>
13
13
  </TABLE>
14
14
  > xlabel="Node"]
15
- node134306135311840 [label=<
15
+ node124372960183776 [label=<
16
16
  <TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="sandybrown" PORT="table">
17
17
  <TR><TD BORDER="0"><font color="#505050">0</font></TD><TD BORDER="1"> left: </TD></TR>
18
18
  <TR><TD BORDER="0"><font color="#505050">1</font></TD><TD BORDER="1"> None </TD></TR>
@@ -24,34 +24,34 @@ digraph memory_graph {
24
24
  <TR><TD BORDER="0"><font color="#505050">7</font></TD><TD BORDER="1"> None </TD></TR>
25
25
  </TABLE>
26
26
  > xlabel="Node"]
27
- node134306135312000 [label=<
27
+ node124372960183936 [label=<
28
28
  <TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="sandybrown" PORT="table">
29
29
  <TR><TD BORDER="0"><font color="#505050">0</font></TD><TD BORDER="0"><font color="#505050">1</font></TD><TD BORDER="0"><font color="#505050">2</font></TD><TD BORDER="0"><font color="#505050">3</font></TD><TD BORDER="0"><font color="#505050">4</font></TD><TD BORDER="0"><font color="#505050">5</font></TD><TD BORDER="0"><font color="#505050">6</font></TD><TD BORDER="0"><font color="#505050">7</font></TD></TR>
30
30
  <TR><TD BORDER="1"> left: </TD><TD BORDER="1" PORT="ref0"> </TD><TD BORDER="1"> key: </TD><TD BORDER="1"> 20 </TD><TD BORDER="1"> value: </TD><TD BORDER="1"> twenty </TD><TD BORDER="1"> right: </TD><TD BORDER="1"> None </TD></TR>
31
31
  </TABLE>
32
32
  > xlabel="Node"]
33
- node134306135312000:ref0 -> node134306135311840:table [style=solid]
34
- node134306137677296 [label=<
33
+ node124372960183936:ref0 -> node124372960183776:table [style=solid]
34
+ node124372962549232 [label=<
35
35
  <TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="sandybrown" PORT="table">
36
36
  <TR><TD BORDER="0"><font color="#505050">0</font></TD><TD BORDER="0"><font color="#505050">1</font></TD><TD BORDER="0"><font color="#505050">2</font></TD><TD BORDER="0"><font color="#505050">3</font></TD><TD BORDER="0"><font color="#505050">4</font></TD><TD BORDER="0"><font color="#505050">5</font></TD><TD BORDER="0"><font color="#505050">6</font></TD><TD BORDER="0"><font color="#505050">7</font></TD></TR>
37
37
  <TR><TD BORDER="1"> left: </TD><TD BORDER="1" PORT="ref0"> </TD><TD BORDER="1"> key: </TD><TD BORDER="1"> 10 </TD><TD BORDER="1"> value: </TD><TD BORDER="1"> ten </TD><TD BORDER="1"> right: </TD><TD BORDER="1" PORT="ref1"> </TD></TR>
38
38
  </TABLE>
39
39
  > xlabel="Node"]
40
- node134306137677296:ref0 -> node134306135313600:table [style=solid]
41
- node134306137677296:ref1 -> node134306135312000:table [style=solid]
42
- node134306137855984 [label=<
40
+ node124372962549232:ref0 -> node124372960185536:table [style=solid]
41
+ node124372962549232:ref1 -> node124372960183936:table [style=solid]
42
+ node124372962727920 [label=<
43
43
  <TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="seagreen1" PORT="table">
44
44
  <TR><TD BORDER="1" STYLE="ROUNDED"> _root </TD><TD BORDER="1" STYLE="ROUNDED"> _count </TD></TR>
45
45
  <TR><TD BORDER="1" PORT="ref0"> </TD><TD BORDER="1"> 4 </TD></TR>
46
46
  </TABLE>
47
47
  > xlabel=AVLTree]
48
- node134306137855984:ref0 -> node134306137677296:table [style=solid]
49
- node134306139709120 [label=<
48
+ node124372962727920:ref0 -> node124372962549232:table [style=solid]
49
+ node124372964581056 [label=<
50
50
  <TABLE BORDER="3" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="#60a5ff" PORT="table">
51
51
  <TR><TD BORDER="1" STYLE="ROUNDED"> tree </TD></TR>
52
52
  <TR><TD BORDER="1" PORT="ref0"> </TD></TR>
53
53
  </TABLE>
54
54
  > xlabel=dict]
55
- node134306139709120:ref0 -> node134306137855984:table [style=solid]
56
- subgraph { rank=same; node134306135313600 -> node134306135312000[weight=10, style=invis]; }
55
+ node124372964581056:ref0 -> node124372962727920:table [style=solid]
56
+ subgraph { rank=same; node124372960185536 -> node124372960183936[weight=10, style=invis]; }
57
57
  }
@@ -1,49 +1,49 @@
1
1
  digraph memory_graph {
2
2
  node [shape=plaintext]
3
- node134306135313600 [label=<
3
+ node124372960185536 [label=<
4
4
  <TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="sandybrown" PORT="table">
5
5
  <TR><TD BORDER="0"> </TD><TD BORDER="0"><font color="#505050">0</font></TD><TD BORDER="0"><font color="#505050">1</font></TD></TR>
6
6
  <TR><TD BORDER="0"><font color="#505050">0</font></TD><TD BORDER="1"> 5 </TD><TD BORDER="1"> five </TD></TR>
7
7
  <TR><TD BORDER="0"><font color="#505050">1</font></TD><TD BORDER="1"> None </TD><TD BORDER="1"> None </TD></TR>
8
8
  </TABLE>
9
9
  > xlabel="Node 2⨯2"]
10
- node134306135311840 [label=<
10
+ node124372960183776 [label=<
11
11
  <TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="sandybrown" PORT="table">
12
12
  <TR><TD BORDER="0"> </TD><TD BORDER="0"><font color="#505050">0</font></TD><TD BORDER="0"><font color="#505050">1</font></TD></TR>
13
13
  <TR><TD BORDER="0"><font color="#505050">0</font></TD><TD BORDER="1"> 15 </TD><TD BORDER="1"> fifteen </TD></TR>
14
14
  <TR><TD BORDER="0"><font color="#505050">1</font></TD><TD BORDER="1"> None </TD><TD BORDER="1"> None </TD></TR>
15
15
  </TABLE>
16
16
  > xlabel="Node 2⨯2"]
17
- node134306135312000 [label=<
17
+ node124372960183936 [label=<
18
18
  <TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="sandybrown" PORT="table">
19
19
  <TR><TD BORDER="0"> </TD><TD BORDER="0"><font color="#505050">0</font></TD><TD BORDER="0"><font color="#505050">1</font></TD></TR>
20
20
  <TR><TD BORDER="0"><font color="#505050">0</font></TD><TD BORDER="1"> 20 </TD><TD BORDER="1"> twenty </TD></TR>
21
21
  <TR><TD BORDER="0"><font color="#505050">1</font></TD><TD BORDER="1" PORT="ref0"> </TD><TD BORDER="1"> None </TD></TR>
22
22
  </TABLE>
23
23
  > xlabel="Node 2⨯2"]
24
- node134306135312000:ref0 -> node134306135311840:table [style=solid]
25
- node134306137677296 [label=<
24
+ node124372960183936:ref0 -> node124372960183776:table [style=solid]
25
+ node124372962549232 [label=<
26
26
  <TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="sandybrown" PORT="table">
27
27
  <TR><TD BORDER="0"> </TD><TD BORDER="0"><font color="#505050">0</font></TD><TD BORDER="0"><font color="#505050">1</font></TD></TR>
28
28
  <TR><TD BORDER="0"><font color="#505050">0</font></TD><TD BORDER="1"> 10 </TD><TD BORDER="1"> ten </TD></TR>
29
29
  <TR><TD BORDER="0"><font color="#505050">1</font></TD><TD BORDER="1" PORT="ref0"> </TD><TD BORDER="1" PORT="ref1"> </TD></TR>
30
30
  </TABLE>
31
31
  > xlabel="Node 2⨯2"]
32
- node134306137677296:ref0 -> node134306135313600:table [style=solid]
33
- node134306137677296:ref1 -> node134306135312000:table [style=solid]
34
- node134306137855984 [label=<
32
+ node124372962549232:ref0 -> node124372960185536:table [style=solid]
33
+ node124372962549232:ref1 -> node124372960183936:table [style=solid]
34
+ node124372962727920 [label=<
35
35
  <TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="seagreen1" PORT="table">
36
36
  <TR><TD BORDER="1" STYLE="ROUNDED"> _root </TD><TD BORDER="1" STYLE="ROUNDED"> _count </TD></TR>
37
37
  <TR><TD BORDER="1" PORT="ref0"> </TD><TD BORDER="1"> 4 </TD></TR>
38
38
  </TABLE>
39
39
  > xlabel=AVLTree]
40
- node134306137855984:ref0 -> node134306137677296:table [style=solid]
41
- node134306139709120 [label=<
40
+ node124372962727920:ref0 -> node124372962549232:table [style=solid]
41
+ node124372964581056 [label=<
42
42
  <TABLE BORDER="3" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="#60a5ff" PORT="table">
43
43
  <TR><TD BORDER="1" STYLE="ROUNDED"> tree </TD></TR>
44
44
  <TR><TD BORDER="1" PORT="ref0"> </TD></TR>
45
45
  </TABLE>
46
46
  > xlabel=dict]
47
- node134306139709120:ref0 -> node134306137855984:table [style=solid]
48
- subgraph { rank=same; node134306135313600 -> node134306135312000[weight=10, style=invis]; }
47
+ node124372964581056:ref0 -> node124372962727920:table [style=solid]
48
+ subgraph { rank=same; node124372960185536 -> node124372960183936[weight=10, style=invis]; }
49
49
  }