memory-graph 0.3.42__tar.gz → 0.3.44__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.
- {memory_graph-0.3.42/memory_graph.egg-info → memory_graph-0.3.44}/PKG-INFO +42 -7
- {memory_graph-0.3.42 → memory_graph-0.3.44}/README.md +41 -6
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/add_one.gv +18 -18
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/avltree_key_value.gv +12 -12
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/avltree_leaf.gv +5 -5
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/avltree_linear.gv +12 -12
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/avltree_table.gv +12 -12
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/bin_search.gv +34 -34
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/bin_search_linear.gv +29 -29
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/bin_tree.gv +35 -35
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/binary0.gv +6 -6
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/binary0.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/binary1.gv +8 -8
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/binary1.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/binary10.gv +16 -16
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/binary10.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/binary11.gv +14 -14
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/binary11.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/binary12.gv +12 -12
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/binary12.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/binary13.gv +10 -10
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/binary13.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/binary14.gv +8 -8
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/binary14.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/binary2.gv +10 -10
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/binary2.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/binary3.gv +12 -12
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/binary3.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/binary4.gv +14 -14
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/binary4.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/binary5.gv +16 -16
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/binary5.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/binary6.gv +18 -18
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/binary6.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/binary7.gv +20 -20
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/binary7.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/binary8.gv +20 -20
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/binary8.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/binary9.gv +18 -18
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/binary9.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/copies.gv +20 -20
- memory_graph-0.3.44/images/copies_immutable.gv +34 -0
- memory_graph-0.3.44/images/copies_immutable.png +0 -0
- memory_graph-0.3.44/images/copies_mix.gv +49 -0
- memory_graph-0.3.44/images/copies_mix.png +0 -0
- memory_graph-0.3.44/images/copy_immutable.gv +34 -0
- memory_graph-0.3.44/images/copy_immutable.png +0 -0
- memory_graph-0.3.44/images/copy_immutable.py +15 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/copy_method.gv +16 -16
- memory_graph-0.3.44/images/copy_mix.gv +49 -0
- memory_graph-0.3.44/images/copy_mix.png +0 -0
- memory_graph-0.3.44/images/copy_mix.py +15 -0
- memory_graph-0.3.44/images/copy_mix.py~ +15 -0
- memory_graph-0.3.44/images/copy_mutable.png +0 -0
- memory_graph-0.3.44/images/copy_mutable.py +15 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/create_images.sh +3 -1
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/debugging0.gv +8 -8
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/debugging0.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/debugging1.gv +11 -11
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/debugging1.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/debugging2.gv +13 -13
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/debugging2.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/debugging3.gv +15 -15
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/debugging3.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/debugging4.gv +17 -17
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/debugging4.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/debugging5.gv +17 -17
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/debugging5.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/extension_numpy.gv +15 -15
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/extension_pandas.gv +8 -8
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/factorial0.gv +3 -3
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/factorial0.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/factorial1.gv +6 -6
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/factorial1.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/factorial2.gv +8 -8
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/factorial2.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/factorial3.gv +10 -10
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/factorial3.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/factorial4.gv +12 -12
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/factorial4.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/factorial5.gv +14 -14
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/factorial5.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/factorial6.gv +12 -12
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/factorial6.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/factorial7.gv +10 -10
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/factorial7.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/factorial8.gv +8 -8
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/factorial8.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/factorial9.gv +6 -6
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/factorial9.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/hash_set.gv +29 -29
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/immutable1.gv +4 -4
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/immutable2.gv +6 -6
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/introspect_depth.gv +56 -56
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/linked_list.gv +20 -20
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/many_types.gv +12 -12
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/mutable1.gv +4 -4
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/mutable2.gv +4 -4
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/not_node_types1.gv +6 -6
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/not_node_types2.gv +14 -14
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set0.gv +11 -11
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set0.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set1.gv +17 -17
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set1.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set10.gv +36 -36
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set10.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set11.gv +31 -31
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set11.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set12.gv +31 -31
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set12.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set13.gv +36 -36
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set13.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set14.gv +41 -41
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set14.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set15.gv +43 -43
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set15.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set16.gv +40 -40
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set16.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set17.gv +40 -40
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set17.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set18.gv +45 -45
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set18.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set19.gv +47 -47
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set19.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set2.gv +22 -22
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set2.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set20.gv +44 -44
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set20.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set21.gv +39 -39
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set21.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set22.gv +34 -34
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set22.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set23.gv +28 -28
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set23.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set3.gv +27 -27
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set3.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set4.gv +32 -32
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set4.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set5.gv +34 -34
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set5.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set6.gv +32 -32
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set6.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set7.gv +32 -32
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set7.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set8.gv +37 -37
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set8.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set9.gv +39 -39
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set9.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/rebinding1.gv +4 -4
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/rebinding2.gv +6 -6
- {memory_graph-0.3.42 → memory_graph-0.3.44}/memory_graph/__init__.py +25 -3
- {memory_graph-0.3.42 → memory_graph-0.3.44/memory_graph.egg-info}/PKG-INFO +42 -7
- {memory_graph-0.3.42 → memory_graph-0.3.44}/memory_graph.egg-info/SOURCES.txt +14 -1
- {memory_graph-0.3.42 → memory_graph-0.3.44}/pyproject.toml +1 -1
- {memory_graph-0.3.42 → memory_graph-0.3.44}/LICENSE.txt +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/MANIFEST.in +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/-0 +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/.gif +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/.idea/.gitignore +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/.idea/images.iml +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/.idea/inspectionProfiles/profiles_settings.xml +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/.idea/misc.xml +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/.idea/modules.xml +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/.idea/vcs.xml +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/.idea/workspace.xml +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/add_one.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/add_one.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/avltree.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/avltree.py~ +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/avltree_dir.gv +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/avltree_dir.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/avltree_fail.gv +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/avltree_fail.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/avltree_key_value.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/avltree_leaf.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/avltree_linear.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/avltree_table.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/bin_search.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/bin_search.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/bin_search.py~ +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/bin_search_linear.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/bin_search_linear.py~ +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/bin_tree.gif +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/bin_tree.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/bin_tree.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/bin_tree2.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/bin_tree2.py~ +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/binary.gif +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/binary.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/call_stack.txt +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/colab_example.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/copies.png +0 -0
- /memory_graph-0.3.42/images/copies.py → /memory_graph-0.3.44/images/copy_immutable.py~ +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/copy_method.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/copy_method.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/create_gif.sh +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/debug.gv +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/debug.pdf +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/debug_vscode.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/debugging.gif +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/debugging.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/debugging01.gv +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/debugging02.gv +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/debugging03.gv +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/debugging04.gv +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/debugging05.gv +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/debugging06.gv +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/depth.gv +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/depth.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/extension_numpy.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/extension_numpy.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/extension_pandas.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/extension_pandas.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/extension_torch.gv +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/extension_torch.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/extension_torch.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/extension_torch.py~ +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/factorial.gif +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/factorial.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/factorial01.gv +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/factorial02.gv +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/factorial03.gv +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/factorial04.gv +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/factorial05.gv +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/factorial06.gv +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/factorial07.gv +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/hash_set.gif +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/hash_set.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/hash_set.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/hidden_edges.gv +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/hidden_edges.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/hidden_edges.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/hidden_edges.py~ +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/highlight.gv +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/immutable.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/immutable1.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/immutable2.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/introspect_depth.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/introspect_depth.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/introspect_depth.py~ +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/ipython.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/jupyter_example.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/linked_list.gif +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/linked_list.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/linked_list.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/log.txt +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/many_types.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/many_types.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/memory_graph.gv +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/memory_graph.gv.pdf +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/memory_graph.pdf +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/mutable.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/mutable1.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/mutable2.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/my_graph.gv +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/my_graph.pdf +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/name_rebinding.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/not_node_types.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/not_node_types.py~ +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/not_node_types1.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/not_node_types2.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set.gif +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set19.png~ +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/power_set8.png~ +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/pyodide.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/rebinding1.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/rebinding2.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/stack.txt +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/test.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/test.py~ +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/uva.png +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/vsc.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/images/vscode_copying.gif +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/memory_graph/call_stack.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/memory_graph/config.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/memory_graph/config_default.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/memory_graph/config_helpers.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/memory_graph/extension_numpy.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/memory_graph/extension_pandas.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/memory_graph/extension_pytorch.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/memory_graph/extension_torch.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/memory_graph/html_table.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/memory_graph/list_view.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/memory_graph/memory_to_nodes.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/memory_graph/node_base.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/memory_graph/node_key_value.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/memory_graph/node_leaf.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/memory_graph/node_linear.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/memory_graph/node_table.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/memory_graph/pytorch_test.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/memory_graph/sequence.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/memory_graph/slicer.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/memory_graph/slices.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/memory_graph/slices_iterator.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/memory_graph/slices_table_iterator.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/memory_graph/test.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/memory_graph/test_max_graph_depth.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/memory_graph/test_memory_graph.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/memory_graph/test_memory_to_nodes.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/memory_graph/test_sequence.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/memory_graph/test_slicer.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/memory_graph/test_slices.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/memory_graph/test_slices_iterator.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/memory_graph/utils.py +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/memory_graph.egg-info/dependency_links.txt +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/memory_graph.egg-info/requires.txt +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/memory_graph.egg-info/top_level.txt +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/setup.cfg +0 -0
- {memory_graph-0.3.42 → memory_graph-0.3.44}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: memory_graph
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.44
|
|
4
4
|
Summary: Teaching tool and debugging aid in context of references, mutable data types, and shallow and deep copy.
|
|
5
5
|
Author-email: Bas Terwijn <bterwijn@gmail.com>
|
|
6
6
|
License-Expression: BSD-2-Clause
|
|
@@ -192,7 +192,7 @@ mg.render(locals(), 'mutable2.png')
|
|
|
192
192
|
|
|
193
193
|
One practical reason why Python makes the distinction between mutable and immutable types is that a value of a mutable type can be large, making it inefficient to copy each time we change it. Immutable values generally don't need to change as much, or are small making copying less of a concern.
|
|
194
194
|
|
|
195
|
-
## Copying ##
|
|
195
|
+
## Copying Values of Mutable Type ##
|
|
196
196
|
Python offers three different "copy" options that we will demonstrate using a nested list:
|
|
197
197
|
|
|
198
198
|
```python
|
|
@@ -213,7 +213,7 @@ mg.show(locals())
|
|
|
213
213
|
* `c2` is a **shallow copy**, only the value referenced by the first reference is copied, all the underlying values are shared
|
|
214
214
|
* `c3` is a **deep copy**, all the values are copied, nothing is shared
|
|
215
215
|
|
|
216
|
-

|
|
217
217
|
|
|
218
218
|
|
|
219
219
|
## Custom Copy ##
|
|
@@ -242,6 +242,41 @@ mg.show(locals())
|
|
|
242
242
|
```
|
|
243
243
|

|
|
244
244
|
|
|
245
|
+
## Copying Values of Immutable Type ##
|
|
246
|
+
Because a value of immutable type will be copied automatically when it is changed, there is no need to copy it beforehand. Therefore, a shallow or deep copy of a value of immutable type will result in just an assignment to save on the time needed to make the copy and the space (=memory) needed to store the values.
|
|
247
|
+
|
|
248
|
+
```python
|
|
249
|
+
import memory_graph as mg
|
|
250
|
+
import copy
|
|
251
|
+
|
|
252
|
+
a = ( (1, 2), ('x', 'y') ) # a nested tuple
|
|
253
|
+
|
|
254
|
+
# three different ways to make a "copy" of 'a':
|
|
255
|
+
c1 = a
|
|
256
|
+
c2 = copy.copy(a)
|
|
257
|
+
c3 = copy.deepcopy(a)
|
|
258
|
+
|
|
259
|
+
mg.show(locals())
|
|
260
|
+
```
|
|
261
|
+

|
|
262
|
+
|
|
263
|
+
## Copying a Mix of Mutable and Immutable Values ##
|
|
264
|
+
When copying a mix of values of mutable and immutable type, to save on time and space, a deep copy will try to copy as few values of immutable type as possible in order to copy each value of mutable type.
|
|
265
|
+
```python
|
|
266
|
+
import memory_graph as mg
|
|
267
|
+
import copy
|
|
268
|
+
|
|
269
|
+
a = ( [1, 2], ('x', 'y') ) # mix of mutable and immutable
|
|
270
|
+
|
|
271
|
+
# three different ways to make a "copy" of 'a':
|
|
272
|
+
c1 = a
|
|
273
|
+
c2 = copy.copy(a)
|
|
274
|
+
c3 = copy.deepcopy(a)
|
|
275
|
+
|
|
276
|
+
mg.show(locals())
|
|
277
|
+
```
|
|
278
|
+

|
|
279
|
+
|
|
245
280
|
## Name Rebinding ##
|
|
246
281
|
When `a` and `b` share a mutable value, then changing the value of `b` changes the value of `a` and vice versa. However, reassigning `b` does not change `a`. When you reassign `b`, you only rebind the name `b` to a new value without effecting any other variables.
|
|
247
282
|
|
|
@@ -299,7 +334,7 @@ This function:
|
|
|
299
334
|
* first executes `fun(arg1, arg2, ...)`
|
|
300
335
|
* then prints the current source location in the program
|
|
301
336
|
* then blocks execution until the <Enter> key is pressed
|
|
302
|
-
* finally returns the value of the `fun()` call
|
|
337
|
+
* finally returns the return value of the `fun()` call
|
|
303
338
|
|
|
304
339
|
## Recursion ##
|
|
305
340
|
The call stack is also helpful to visualize how recursion works. Here we use `mg.block()` to show each step of how recursively `factorial(4)` is computed:
|
|
@@ -323,7 +358,7 @@ print( factorial(4) )
|
|
|
323
358
|
and the result is: 1 x 2 x 3 x 4 = 24
|
|
324
359
|
|
|
325
360
|
## Binary ##
|
|
326
|
-
A more interesting recursive example is function `binary()` that converts
|
|
361
|
+
A more interesting recursive example is function `binary()` that converts a decimal integer to binary representation.
|
|
327
362
|
```python
|
|
328
363
|
import memory_graph as mg
|
|
329
364
|
mg.config.type_to_vertical[list] = False # horizontal lists
|
|
@@ -385,7 +420,7 @@ as a *watch* in a debugger tool such as the integrated debugger in Visual Studio
|
|
|
385
420
|
## Call Stack in Watch Context ##
|
|
386
421
|
The ```mg.stack()``` doesn't work well in *watch* context in most debuggers because debuggers introduce additional stack frames that cause problems. Use these alternative functions for various debuggers to filter out these problematic stack frames:
|
|
387
422
|
|
|
388
|
-
| debugger | function to get the call stack |
|
|
423
|
+
| debugger | function to get the call stack in 'watch' context |
|
|
389
424
|
|:---|:---|
|
|
390
425
|
| [pdb](https://docs.python.org/3/library/pdb.html), [pudb](https://pypi.org/project/pudb/) | `mg.stack_pdb()` |
|
|
391
426
|
| [Visual Studio Code](https://code.visualstudio.com/docs/languages/python) | `mg.stack_vscode()` |
|
|
@@ -982,7 +1017,7 @@ See for example [colab_example.ipynb](https://raw.githubusercontent.com/bterwijn
|
|
|
982
1017
|

|
|
983
1018
|
|
|
984
1019
|
# In the Browser #
|
|
985
|
-
We can also
|
|
1020
|
+
We can also use memory_graph in the browser: <a href="https://bterwijn.github.io/memory_graph/src/pyodide.html" target="_blank">Pyodide Example</a>
|
|
986
1021
|

|
|
987
1022
|
|
|
988
1023
|
|
|
@@ -172,7 +172,7 @@ mg.render(locals(), 'mutable2.png')
|
|
|
172
172
|
|
|
173
173
|
One practical reason why Python makes the distinction between mutable and immutable types is that a value of a mutable type can be large, making it inefficient to copy each time we change it. Immutable values generally don't need to change as much, or are small making copying less of a concern.
|
|
174
174
|
|
|
175
|
-
## Copying ##
|
|
175
|
+
## Copying Values of Mutable Type ##
|
|
176
176
|
Python offers three different "copy" options that we will demonstrate using a nested list:
|
|
177
177
|
|
|
178
178
|
```python
|
|
@@ -193,7 +193,7 @@ mg.show(locals())
|
|
|
193
193
|
* `c2` is a **shallow copy**, only the value referenced by the first reference is copied, all the underlying values are shared
|
|
194
194
|
* `c3` is a **deep copy**, all the values are copied, nothing is shared
|
|
195
195
|
|
|
196
|
-

|
|
197
197
|
|
|
198
198
|
|
|
199
199
|
## Custom Copy ##
|
|
@@ -222,6 +222,41 @@ mg.show(locals())
|
|
|
222
222
|
```
|
|
223
223
|

|
|
224
224
|
|
|
225
|
+
## Copying Values of Immutable Type ##
|
|
226
|
+
Because a value of immutable type will be copied automatically when it is changed, there is no need to copy it beforehand. Therefore, a shallow or deep copy of a value of immutable type will result in just an assignment to save on the time needed to make the copy and the space (=memory) needed to store the values.
|
|
227
|
+
|
|
228
|
+
```python
|
|
229
|
+
import memory_graph as mg
|
|
230
|
+
import copy
|
|
231
|
+
|
|
232
|
+
a = ( (1, 2), ('x', 'y') ) # a nested tuple
|
|
233
|
+
|
|
234
|
+
# three different ways to make a "copy" of 'a':
|
|
235
|
+
c1 = a
|
|
236
|
+
c2 = copy.copy(a)
|
|
237
|
+
c3 = copy.deepcopy(a)
|
|
238
|
+
|
|
239
|
+
mg.show(locals())
|
|
240
|
+
```
|
|
241
|
+

|
|
242
|
+
|
|
243
|
+
## Copying a Mix of Mutable and Immutable Values ##
|
|
244
|
+
When copying a mix of values of mutable and immutable type, to save on time and space, a deep copy will try to copy as few values of immutable type as possible in order to copy each value of mutable type.
|
|
245
|
+
```python
|
|
246
|
+
import memory_graph as mg
|
|
247
|
+
import copy
|
|
248
|
+
|
|
249
|
+
a = ( [1, 2], ('x', 'y') ) # mix of mutable and immutable
|
|
250
|
+
|
|
251
|
+
# three different ways to make a "copy" of 'a':
|
|
252
|
+
c1 = a
|
|
253
|
+
c2 = copy.copy(a)
|
|
254
|
+
c3 = copy.deepcopy(a)
|
|
255
|
+
|
|
256
|
+
mg.show(locals())
|
|
257
|
+
```
|
|
258
|
+

|
|
259
|
+
|
|
225
260
|
## Name Rebinding ##
|
|
226
261
|
When `a` and `b` share a mutable value, then changing the value of `b` changes the value of `a` and vice versa. However, reassigning `b` does not change `a`. When you reassign `b`, you only rebind the name `b` to a new value without effecting any other variables.
|
|
227
262
|
|
|
@@ -279,7 +314,7 @@ This function:
|
|
|
279
314
|
* first executes `fun(arg1, arg2, ...)`
|
|
280
315
|
* then prints the current source location in the program
|
|
281
316
|
* then blocks execution until the <Enter> key is pressed
|
|
282
|
-
* finally returns the value of the `fun()` call
|
|
317
|
+
* finally returns the return value of the `fun()` call
|
|
283
318
|
|
|
284
319
|
## Recursion ##
|
|
285
320
|
The call stack is also helpful to visualize how recursion works. Here we use `mg.block()` to show each step of how recursively `factorial(4)` is computed:
|
|
@@ -303,7 +338,7 @@ print( factorial(4) )
|
|
|
303
338
|
and the result is: 1 x 2 x 3 x 4 = 24
|
|
304
339
|
|
|
305
340
|
## Binary ##
|
|
306
|
-
A more interesting recursive example is function `binary()` that converts
|
|
341
|
+
A more interesting recursive example is function `binary()` that converts a decimal integer to binary representation.
|
|
307
342
|
```python
|
|
308
343
|
import memory_graph as mg
|
|
309
344
|
mg.config.type_to_vertical[list] = False # horizontal lists
|
|
@@ -365,7 +400,7 @@ as a *watch* in a debugger tool such as the integrated debugger in Visual Studio
|
|
|
365
400
|
## Call Stack in Watch Context ##
|
|
366
401
|
The ```mg.stack()``` doesn't work well in *watch* context in most debuggers because debuggers introduce additional stack frames that cause problems. Use these alternative functions for various debuggers to filter out these problematic stack frames:
|
|
367
402
|
|
|
368
|
-
| debugger | function to get the call stack |
|
|
403
|
+
| debugger | function to get the call stack in 'watch' context |
|
|
369
404
|
|:---|:---|
|
|
370
405
|
| [pdb](https://docs.python.org/3/library/pdb.html), [pudb](https://pypi.org/project/pudb/) | `mg.stack_pdb()` |
|
|
371
406
|
| [Visual Studio Code](https://code.visualstudio.com/docs/languages/python) | `mg.stack_vscode()` |
|
|
@@ -962,7 +997,7 @@ See for example [colab_example.ipynb](https://raw.githubusercontent.com/bterwijn
|
|
|
962
997
|

|
|
963
998
|
|
|
964
999
|
# In the Browser #
|
|
965
|
-
We can also
|
|
1000
|
+
We can also use memory_graph in the browser: <a href="https://bterwijn.github.io/memory_graph/src/pyodide.html" target="_blank">Pyodide Example</a>
|
|
966
1001
|

|
|
967
1002
|
|
|
968
1003
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
digraph memory_graph {
|
|
2
2
|
node [shape=plaintext]
|
|
3
|
-
|
|
3
|
+
node127655305006656 [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
|
-
|
|
11
|
+
node127655294509888 [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
|
-
|
|
18
|
+
node127655293772928 [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
|
-
|
|
25
|
+
node127655294332544 [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
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
31
|
+
node127655294332544:ref0 -> node127655305006656:table [style=solid]
|
|
32
|
+
node127655294332544:ref1 -> node127655294509888:table [style=solid]
|
|
33
|
+
node127655294332544:ref2 -> node127655293772928:table [style=solid]
|
|
34
|
+
node127655294474960 [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
|
-
|
|
42
|
+
node127655294510272 [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
|
-
|
|
50
|
+
node127655289932736 [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
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
56
|
+
node127655289932736:ref0 -> node127655305006656:table [style=solid]
|
|
57
|
+
node127655289932736:ref1 -> node127655294474960:table [style=solid]
|
|
58
|
+
node127655289932736:ref2 -> node127655294510272:table [style=solid]
|
|
59
|
+
node127655290005664 [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: <module> </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
|
-
|
|
66
|
-
|
|
67
|
-
subgraph { rank=same;
|
|
68
|
-
subgraph { rank=same;
|
|
65
|
+
node127655290005664:ref0 -> node127655294332544:table [style=solid]
|
|
66
|
+
node127655290005664:ref1 -> node127655289932736:table [style=solid]
|
|
67
|
+
subgraph { rank=same; node127655294332544 -> node127655289932736[weight=10, style=invis]; }
|
|
68
|
+
subgraph { rank=same; node127655305006656 -> node127655294509888 -> node127655293772928 -> node127655294474960 -> node127655294510272[weight=10, style=invis]; }
|
|
69
69
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
digraph memory_graph {
|
|
2
2
|
node [shape=plaintext]
|
|
3
|
-
|
|
3
|
+
node134196776614496 [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
|
-
|
|
11
|
+
node134196776859856 [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
|
-
|
|
19
|
+
node134196776859936 [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
|
-
|
|
26
|
-
|
|
25
|
+
node134196776859936:ref0 -> node134196776859856:table [style=solid]
|
|
26
|
+
node134196791832432 [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
|
-
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
node134196791832432:ref0 -> node134196776614496:table [style=solid]
|
|
33
|
+
node134196791832432:ref1 -> node134196776859936:table [style=solid]
|
|
34
|
+
node134196778143760 [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
|
-
|
|
41
|
-
|
|
40
|
+
node134196778143760:ref0 -> node134196791832432:table [style=solid]
|
|
41
|
+
node134196780812224 [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
|
-
|
|
48
|
-
subgraph { rank=same;
|
|
47
|
+
node134196780812224:ref0 -> node134196778143760:table [style=solid]
|
|
48
|
+
subgraph { rank=same; node134196776614496 -> node134196776859936[weight=10, style=invis]; }
|
|
49
49
|
}
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
digraph memory_graph {
|
|
2
2
|
node [shape=plaintext]
|
|
3
|
-
|
|
3
|
+
node134196791832432 [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
|
-
|
|
8
|
+
node134196778143760 [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
|
-
|
|
15
|
-
|
|
14
|
+
node134196778143760:ref0 -> node134196791832432:table [style=solid]
|
|
15
|
+
node134196780812224 [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
|
-
|
|
21
|
+
node134196780812224:ref0 -> node134196778143760:table [style=solid]
|
|
22
22
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
digraph memory_graph {
|
|
2
2
|
node [shape=plaintext]
|
|
3
|
-
|
|
3
|
+
node134196776614496 [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
|
-
|
|
15
|
+
node134196776859856 [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
|
-
|
|
27
|
+
node134196776859936 [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
|
-
|
|
34
|
-
|
|
33
|
+
node134196776859936:ref0 -> node134196776859856:table [style=solid]
|
|
34
|
+
node134196791832432 [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
|
-
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
node134196791832432:ref0 -> node134196776614496:table [style=solid]
|
|
41
|
+
node134196791832432:ref1 -> node134196776859936:table [style=solid]
|
|
42
|
+
node134196778143760 [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
|
-
|
|
49
|
-
|
|
48
|
+
node134196778143760:ref0 -> node134196791832432:table [style=solid]
|
|
49
|
+
node134196780812224 [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
|
-
|
|
56
|
-
subgraph { rank=same;
|
|
55
|
+
node134196780812224:ref0 -> node134196778143760:table [style=solid]
|
|
56
|
+
subgraph { rank=same; node134196776614496 -> node134196776859936[weight=10, style=invis]; }
|
|
57
57
|
}
|
|
@@ -1,49 +1,49 @@
|
|
|
1
1
|
digraph memory_graph {
|
|
2
2
|
node [shape=plaintext]
|
|
3
|
-
|
|
3
|
+
node134196776614496 [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
|
-
|
|
10
|
+
node134196776859856 [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
|
-
|
|
17
|
+
node134196776859936 [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
|
-
|
|
25
|
-
|
|
24
|
+
node134196776859936:ref0 -> node134196776859856:table [style=solid]
|
|
25
|
+
node134196791832432 [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
|
-
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
node134196791832432:ref0 -> node134196776614496:table [style=solid]
|
|
33
|
+
node134196791832432:ref1 -> node134196776859936:table [style=solid]
|
|
34
|
+
node134196778143760 [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
|
-
|
|
41
|
-
|
|
40
|
+
node134196778143760:ref0 -> node134196791832432:table [style=solid]
|
|
41
|
+
node134196780812224 [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
|
-
|
|
48
|
-
subgraph { rank=same;
|
|
47
|
+
node134196780812224:ref0 -> node134196778143760:table [style=solid]
|
|
48
|
+
subgraph { rank=same; node134196776614496 -> node134196776859936[weight=10, style=invis]; }
|
|
49
49
|
}
|