memory-graph 0.3.41__tar.gz → 0.3.42__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.41/memory_graph.egg-info → memory_graph-0.3.42}/PKG-INFO +26 -25
- {memory_graph-0.3.41 → memory_graph-0.3.42}/README.md +25 -24
- memory_graph-0.3.42/images/-0 +0 -0
- memory_graph-0.3.42/images/.gif +0 -0
- memory_graph-0.3.42/images/.idea/.gitignore +8 -0
- memory_graph-0.3.42/images/.idea/images.iml +12 -0
- memory_graph-0.3.42/images/.idea/inspectionProfiles/profiles_settings.xml +6 -0
- memory_graph-0.3.42/images/.idea/misc.xml +7 -0
- memory_graph-0.3.42/images/.idea/modules.xml +8 -0
- memory_graph-0.3.42/images/.idea/vcs.xml +6 -0
- memory_graph-0.3.42/images/.idea/workspace.xml +83 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/add_one.gv +18 -18
- memory_graph-0.3.42/images/avltree.py~ +41 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/avltree_dir.gv +36 -34
- memory_graph-0.3.42/images/avltree_fail.gv +22 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/avltree_key_value.gv +12 -12
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/avltree_leaf.gv +5 -5
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/avltree_linear.gv +12 -12
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/avltree_table.gv +12 -12
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/bin_search.gv +34 -34
- memory_graph-0.3.42/images/bin_search.py~ +42 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/bin_search_linear.gv +29 -29
- memory_graph-0.3.42/images/bin_search_linear.py~ +42 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/bin_tree.gv +35 -35
- memory_graph-0.3.42/images/bin_tree2.py +31 -0
- memory_graph-0.3.42/images/bin_tree2.py~ +31 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/binary0.gv +6 -6
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/binary0.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/binary1.gv +8 -8
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/binary1.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/binary10.gv +16 -16
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/binary10.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/binary11.gv +14 -14
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/binary11.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/binary12.gv +12 -12
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/binary12.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/binary13.gv +10 -10
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/binary13.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/binary14.gv +8 -8
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/binary14.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/binary2.gv +10 -10
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/binary2.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/binary3.gv +12 -12
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/binary3.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/binary4.gv +14 -14
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/binary4.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/binary5.gv +16 -16
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/binary5.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/binary6.gv +18 -18
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/binary6.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/binary7.gv +20 -20
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/binary7.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/binary8.gv +20 -20
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/binary8.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/binary9.gv +18 -18
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/binary9.png +0 -0
- memory_graph-0.3.42/images/call_stack.txt +24 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/copies.gv +20 -20
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/copy_method.gv +16 -16
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/create_images.sh +4 -5
- memory_graph-0.3.42/images/debug.gv +15 -0
- memory_graph-0.3.42/images/debug.pdf +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/debugging0.gv +8 -8
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/debugging0.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/debugging01.gv +8 -8
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/debugging02.gv +11 -11
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/debugging03.gv +13 -13
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/debugging04.gv +15 -15
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/debugging05.gv +17 -17
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/debugging06.gv +17 -17
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/debugging1.gv +11 -11
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/debugging1.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/debugging2.gv +13 -13
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/debugging2.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/debugging3.gv +15 -15
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/debugging3.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/debugging4.gv +17 -17
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/debugging4.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/debugging5.gv +17 -17
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/debugging5.png +0 -0
- memory_graph-0.3.41/images/introspect_depth.gv → memory_graph-0.3.42/images/depth.gv +56 -56
- memory_graph-0.3.42/images/depth.png +0 -0
- memory_graph-0.3.42/images/extension_numpy.gv +64 -0
- memory_graph-0.3.42/images/extension_numpy.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/extension_numpy.py +4 -3
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/extension_pandas.gv +8 -8
- memory_graph-0.3.42/images/extension_torch.gv +51 -0
- memory_graph-0.3.42/images/extension_torch.png +0 -0
- memory_graph-0.3.42/images/extension_torch.py +10 -0
- memory_graph-0.3.42/images/extension_torch.py~ +10 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/factorial0.gv +3 -3
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/factorial0.png +0 -0
- memory_graph-0.3.42/images/factorial01.gv +15 -0
- memory_graph-0.3.42/images/factorial02.gv +22 -0
- memory_graph-0.3.42/images/factorial03.gv +28 -0
- memory_graph-0.3.42/images/factorial04.gv +34 -0
- memory_graph-0.3.42/images/factorial05.gv +35 -0
- memory_graph-0.3.42/images/factorial06.gv +29 -0
- memory_graph-0.3.42/images/factorial07.gv +23 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/factorial1.gv +6 -6
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/factorial1.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/factorial2.gv +8 -8
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/factorial2.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/factorial3.gv +10 -10
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/factorial3.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/factorial4.gv +12 -12
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/factorial4.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/factorial5.gv +14 -14
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/factorial5.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/factorial6.gv +12 -12
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/factorial6.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/factorial7.gv +10 -10
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/factorial7.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/factorial8.gv +8 -8
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/factorial8.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/factorial9.gv +6 -6
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/factorial9.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/hash_set.gv +29 -29
- memory_graph-0.3.42/images/hidden_edges.gv +37 -0
- memory_graph-0.3.42/images/hidden_edges.py +8 -0
- memory_graph-0.3.42/images/hidden_edges.py~ +9 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/highlight.gv +16 -16
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/immutable1.gv +4 -4
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/immutable2.gv +6 -6
- memory_graph-0.3.42/images/introspect_depth.gv +178 -0
- memory_graph-0.3.42/images/introspect_depth.py~ +26 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/linked_list.gv +20 -20
- memory_graph-0.3.42/images/log.txt +186 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/many_types.gv +12 -12
- memory_graph-0.3.42/images/memory_graph.gv +43 -0
- memory_graph-0.3.42/images/memory_graph.gv.pdf +0 -0
- memory_graph-0.3.42/images/memory_graph.pdf +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/mutable1.gv +4 -4
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/mutable2.gv +4 -4
- memory_graph-0.3.42/images/my_graph.gv +31 -0
- memory_graph-0.3.42/images/my_graph.pdf +0 -0
- memory_graph-0.3.42/images/not_node_types.py~ +9 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/not_node_types1.gv +6 -6
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/not_node_types2.gv +16 -16
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set0.gv +11 -11
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set0.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set1.gv +17 -17
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set1.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set10.gv +36 -36
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set10.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set11.gv +31 -31
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set11.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set12.gv +31 -31
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set12.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set13.gv +36 -36
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set13.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set14.gv +41 -41
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set14.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set15.gv +43 -43
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set15.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set16.gv +40 -40
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set16.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set17.gv +40 -40
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set17.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set18.gv +45 -45
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set18.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set19.gv +47 -47
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set19.png +0 -0
- memory_graph-0.3.42/images/power_set19.png~ +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set2.gv +22 -22
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set2.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set20.gv +44 -44
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set20.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set21.gv +39 -39
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set21.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set22.gv +34 -34
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set22.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set23.gv +28 -28
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set23.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set3.gv +27 -27
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set3.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set4.gv +32 -32
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set4.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set5.gv +34 -34
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set5.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set6.gv +32 -32
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set6.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set7.gv +32 -32
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set7.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set8.gv +37 -37
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set8.png +0 -0
- memory_graph-0.3.42/images/power_set8.png~ +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set9.gv +39 -39
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set9.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/rebinding1.gv +4 -4
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/rebinding2.gv +6 -6
- memory_graph-0.3.42/images/stack.txt +24 -0
- memory_graph-0.3.42/images/test.py +20 -0
- memory_graph-0.3.42/images/test.py~ +18 -0
- memory_graph-0.3.42/images/vsc.py +42 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/memory_graph/__init__.py +27 -48
- {memory_graph-0.3.41 → memory_graph-0.3.42}/memory_graph/config_helpers.py +3 -22
- memory_graph-0.3.42/memory_graph/extension_numpy.py +33 -0
- memory_graph-0.3.42/memory_graph/extension_torch.py +6 -0
- memory_graph-0.3.42/memory_graph/pytorch_test.py +10 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/memory_graph/test_memory_to_nodes.py +1 -3
- {memory_graph-0.3.41 → memory_graph-0.3.42/memory_graph.egg-info}/PKG-INFO +26 -25
- {memory_graph-0.3.41 → memory_graph-0.3.42}/memory_graph.egg-info/SOURCES.txt +50 -7
- {memory_graph-0.3.41 → memory_graph-0.3.42}/pyproject.toml +1 -1
- memory_graph-0.3.42/setup.py +7 -0
- memory_graph-0.3.41/images/binary.py~ +0 -12
- memory_graph-0.3.41/images/cmp.sh +0 -3
- memory_graph-0.3.41/images/cmp.sh~ +0 -1
- memory_graph-0.3.41/images/extension_numpy.gv +0 -52
- memory_graph-0.3.41/images/extension_numpy.png +0 -0
- memory_graph-0.3.41/images/highlight.png +0 -0
- memory_graph-0.3.41/images/highlight.py +0 -15
- memory_graph-0.3.41/images/memory_graph.gv +0 -30
- memory_graph-0.3.41/images/memory_graph.pdf +0 -0
- memory_graph-0.3.41/images/name_rebinding.py~ +0 -7
- memory_graph-0.3.41/memory_graph/t.py +0 -6
- {memory_graph-0.3.41 → memory_graph-0.3.42}/LICENSE.txt +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/MANIFEST.in +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/add_one.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/add_one.py +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/avltree.py +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/avltree_dir.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/avltree_fail.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/avltree_key_value.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/avltree_leaf.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/avltree_linear.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/avltree_table.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/bin_search.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/bin_search.py +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/bin_search_linear.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/bin_tree.gif +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/bin_tree.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/bin_tree.py +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/binary.gif +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/binary.py +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/colab_example.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/copies.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/copies.py +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/copy_method.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/copy_method.py +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/create_gif.sh +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/debug_vscode.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/debugging.gif +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/debugging.py +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/extension_pandas.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/extension_pandas.py +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/factorial.gif +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/factorial.py +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/hash_set.gif +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/hash_set.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/hash_set.py +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/hidden_edges.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/immutable.py +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/immutable1.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/immutable2.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/introspect_depth.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/introspect_depth.py +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/ipython.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/jupyter_example.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/linked_list.gif +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/linked_list.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/linked_list.py +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/many_types.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/many_types.py +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/mutable.py +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/mutable1.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/mutable2.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/name_rebinding.py +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/not_node_types.py +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/not_node_types1.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/not_node_types2.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set.gif +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/power_set.py +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/pyodide.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/rebinding1.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/rebinding2.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/uva.png +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/images/vscode_copying.gif +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/memory_graph/call_stack.py +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/memory_graph/config.py +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/memory_graph/config_default.py +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/memory_graph/extension_pandas.py +0 -0
- /memory_graph-0.3.41/memory_graph/extension_numpy.py → /memory_graph-0.3.42/memory_graph/extension_pytorch.py +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/memory_graph/html_table.py +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/memory_graph/list_view.py +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/memory_graph/memory_to_nodes.py +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/memory_graph/node_base.py +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/memory_graph/node_key_value.py +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/memory_graph/node_leaf.py +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/memory_graph/node_linear.py +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/memory_graph/node_table.py +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/memory_graph/sequence.py +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/memory_graph/slicer.py +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/memory_graph/slices.py +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/memory_graph/slices_iterator.py +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/memory_graph/slices_table_iterator.py +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/memory_graph/test.py +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/memory_graph/test_max_graph_depth.py +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/memory_graph/test_memory_graph.py +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/memory_graph/test_sequence.py +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/memory_graph/test_slicer.py +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/memory_graph/test_slices.py +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/memory_graph/test_slices_iterator.py +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/memory_graph/utils.py +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/memory_graph.egg-info/dependency_links.txt +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/memory_graph.egg-info/requires.txt +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/memory_graph.egg-info/top_level.txt +0 -0
- {memory_graph-0.3.41 → memory_graph-0.3.42}/setup.cfg +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.42
|
|
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
|
|
@@ -588,13 +588,13 @@ Different aspects of memory_graph can be configured. The default configuration c
|
|
|
588
588
|
- The maximum length of strings shown in the graph. Longer strings will be truncated.
|
|
589
589
|
|
|
590
590
|
- ***mg.config.not_node_types*** : set[type]
|
|
591
|
-
- Holds all types for which no
|
|
591
|
+
- Holds all types for which no separate node is drawn but that instead are shown as elements in their parent Node.
|
|
592
592
|
|
|
593
593
|
- ***mg.config.no_child_references_types*** : set[type]
|
|
594
594
|
- The set of key_value types that don't draw references to their direct childeren but have their children shown as elements of their node.
|
|
595
595
|
|
|
596
596
|
- ***mg.config.type_to_node*** : dict[type, fun(data) -> Node]
|
|
597
|
-
- Determines how a data
|
|
597
|
+
- Determines how a data type is converted to a Node subclass for visualization in the graph.
|
|
598
598
|
|
|
599
599
|
- ***mg.config.type_to_color*** : dict[type, color]
|
|
600
600
|
- Maps a type to the [graphviz color](https://graphviz.org/doc/info/colors.html) it gets in the graph.
|
|
@@ -639,24 +639,6 @@ mg.render(locals(), 'not_node_types2.png')
|
|
|
639
639
|
|
|
640
640
|
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.
|
|
641
641
|
|
|
642
|
-
## Temporary Configuration ##
|
|
643
|
-
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:
|
|
644
|
-
|
|
645
|
-
```python
|
|
646
|
-
import memory_graph as mg
|
|
647
|
-
from memory_graph.slicer import Slicer
|
|
648
|
-
|
|
649
|
-
data = [ list(range(20)) for i in range(1,5)]
|
|
650
|
-
highlight = data[2]
|
|
651
|
-
|
|
652
|
-
mg.show( locals(),
|
|
653
|
-
colors = {id(highlight): "red" }, # set color to red
|
|
654
|
-
verticals = {id(highlight): False }, # set horizontal orientation
|
|
655
|
-
slicers = {id(highlight): Slicer()} # set no slicing
|
|
656
|
-
)
|
|
657
|
-
```
|
|
658
|
-

|
|
659
|
-
|
|
660
642
|
# Introspection #
|
|
661
643
|
This section is likely to change. Sometimes the introspection fails or is not as desired. For example the `bintrees.avltree.Node` object doesn't show any attributes in the graph below.
|
|
662
644
|
|
|
@@ -699,7 +681,7 @@ mg.show(locals())
|
|
|
699
681
|
```
|
|
700
682
|

|
|
701
683
|
|
|
702
|
-
Next figure out what
|
|
684
|
+
Next figure out what the attributes are you want to graph and choose a Node type, there are four options:
|
|
703
685
|
|
|
704
686
|
## 1) Node_Leaf ##
|
|
705
687
|
Node_Leaf is a node with no children and shows just a single value.
|
|
@@ -925,9 +907,11 @@ import numpy as np
|
|
|
925
907
|
import memory_graph.extension_numpy
|
|
926
908
|
np.random.seed(0) # use same random numbers each run
|
|
927
909
|
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
910
|
+
matrix = np.matrix([[i*5+j for j in range(4)] for i in range(5)])
|
|
911
|
+
ndarray_1d = np.array([1.1, 2, 3, 4, 5])
|
|
912
|
+
ndarray_2d = np.random.rand(3,2)
|
|
913
|
+
ndarray_3d = np.random.rand(2,2,2)
|
|
914
|
+
|
|
931
915
|
mg.show(locals())
|
|
932
916
|
```
|
|
933
917
|

|
|
@@ -951,6 +935,23 @@ mg.show(locals())
|
|
|
951
935
|
```
|
|
952
936
|

|
|
953
937
|
|
|
938
|
+
## PyTorch ##
|
|
939
|
+
Torch type `tensor` can be graphed with "memory_graph.extension_torch":
|
|
940
|
+
|
|
941
|
+
```python
|
|
942
|
+
import memory_graph as mg
|
|
943
|
+
import torch
|
|
944
|
+
import memory_graph.extension_torch
|
|
945
|
+
torch.manual_seed(0) # same random numbers each run
|
|
946
|
+
|
|
947
|
+
tensor_1d = torch.rand(3)
|
|
948
|
+
tensor_2d = torch.rand(3, 2)
|
|
949
|
+
tensor_3d = torch.rand(2, 2, 2)
|
|
950
|
+
|
|
951
|
+
mg.show(locals())
|
|
952
|
+
```
|
|
953
|
+

|
|
954
|
+
|
|
954
955
|
# Jupyter Notebook #
|
|
955
956
|
In Jupyter Notebook `locals()` has additional variables that cause problems in the graph, use `mg.locals_jupyter()` to get the local variables with these problematic variables filtered out. Use `mg.stack_jupyter()` to get the whole call stack with these variables filtered out.
|
|
956
957
|
|
|
@@ -568,13 +568,13 @@ Different aspects of memory_graph can be configured. The default configuration c
|
|
|
568
568
|
- The maximum length of strings shown in the graph. Longer strings will be truncated.
|
|
569
569
|
|
|
570
570
|
- ***mg.config.not_node_types*** : set[type]
|
|
571
|
-
- Holds all types for which no
|
|
571
|
+
- Holds all types for which no separate node is drawn but that instead are shown as elements in their parent Node.
|
|
572
572
|
|
|
573
573
|
- ***mg.config.no_child_references_types*** : set[type]
|
|
574
574
|
- The set of key_value types that don't draw references to their direct childeren but have their children shown as elements of their node.
|
|
575
575
|
|
|
576
576
|
- ***mg.config.type_to_node*** : dict[type, fun(data) -> Node]
|
|
577
|
-
- Determines how a data
|
|
577
|
+
- Determines how a data type is converted to a Node subclass for visualization in the graph.
|
|
578
578
|
|
|
579
579
|
- ***mg.config.type_to_color*** : dict[type, color]
|
|
580
580
|
- Maps a type to the [graphviz color](https://graphviz.org/doc/info/colors.html) it gets in the graph.
|
|
@@ -619,24 +619,6 @@ mg.render(locals(), 'not_node_types2.png')
|
|
|
619
619
|
|
|
620
620
|
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.
|
|
621
621
|
|
|
622
|
-
## Temporary Configuration ##
|
|
623
|
-
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:
|
|
624
|
-
|
|
625
|
-
```python
|
|
626
|
-
import memory_graph as mg
|
|
627
|
-
from memory_graph.slicer import Slicer
|
|
628
|
-
|
|
629
|
-
data = [ list(range(20)) for i in range(1,5)]
|
|
630
|
-
highlight = data[2]
|
|
631
|
-
|
|
632
|
-
mg.show( locals(),
|
|
633
|
-
colors = {id(highlight): "red" }, # set color to red
|
|
634
|
-
verticals = {id(highlight): False }, # set horizontal orientation
|
|
635
|
-
slicers = {id(highlight): Slicer()} # set no slicing
|
|
636
|
-
)
|
|
637
|
-
```
|
|
638
|
-

|
|
639
|
-
|
|
640
622
|
# Introspection #
|
|
641
623
|
This section is likely to change. Sometimes the introspection fails or is not as desired. For example the `bintrees.avltree.Node` object doesn't show any attributes in the graph below.
|
|
642
624
|
|
|
@@ -679,7 +661,7 @@ mg.show(locals())
|
|
|
679
661
|
```
|
|
680
662
|

|
|
681
663
|
|
|
682
|
-
Next figure out what
|
|
664
|
+
Next figure out what the attributes are you want to graph and choose a Node type, there are four options:
|
|
683
665
|
|
|
684
666
|
## 1) Node_Leaf ##
|
|
685
667
|
Node_Leaf is a node with no children and shows just a single value.
|
|
@@ -905,9 +887,11 @@ import numpy as np
|
|
|
905
887
|
import memory_graph.extension_numpy
|
|
906
888
|
np.random.seed(0) # use same random numbers each run
|
|
907
889
|
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
890
|
+
matrix = np.matrix([[i*5+j for j in range(4)] for i in range(5)])
|
|
891
|
+
ndarray_1d = np.array([1.1, 2, 3, 4, 5])
|
|
892
|
+
ndarray_2d = np.random.rand(3,2)
|
|
893
|
+
ndarray_3d = np.random.rand(2,2,2)
|
|
894
|
+
|
|
911
895
|
mg.show(locals())
|
|
912
896
|
```
|
|
913
897
|

|
|
@@ -931,6 +915,23 @@ mg.show(locals())
|
|
|
931
915
|
```
|
|
932
916
|

|
|
933
917
|
|
|
918
|
+
## PyTorch ##
|
|
919
|
+
Torch type `tensor` can be graphed with "memory_graph.extension_torch":
|
|
920
|
+
|
|
921
|
+
```python
|
|
922
|
+
import memory_graph as mg
|
|
923
|
+
import torch
|
|
924
|
+
import memory_graph.extension_torch
|
|
925
|
+
torch.manual_seed(0) # same random numbers each run
|
|
926
|
+
|
|
927
|
+
tensor_1d = torch.rand(3)
|
|
928
|
+
tensor_2d = torch.rand(3, 2)
|
|
929
|
+
tensor_3d = torch.rand(2, 2, 2)
|
|
930
|
+
|
|
931
|
+
mg.show(locals())
|
|
932
|
+
```
|
|
933
|
+

|
|
934
|
+
|
|
934
935
|
# Jupyter Notebook #
|
|
935
936
|
In Jupyter Notebook `locals()` has additional variables that cause problems in the graph, use `mg.locals_jupyter()` to get the local variables with these problematic variables filtered out. Use `mg.stack_jupyter()` to get the whole call stack with these variables filtered out.
|
|
936
937
|
|
|
Binary file
|
|
File without changes
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<module type="PYTHON_MODULE" version="4">
|
|
3
|
+
<component name="NewModuleRootManager">
|
|
4
|
+
<content url="file://$MODULE_DIR$" />
|
|
5
|
+
<orderEntry type="jdk" jdkName="Python 3.13 virtualenv at ~/python3.13_env" jdkType="Python SDK" />
|
|
6
|
+
<orderEntry type="sourceFolder" forTests="false" />
|
|
7
|
+
</component>
|
|
8
|
+
<component name="PyDocumentationSettings">
|
|
9
|
+
<option name="format" value="PLAIN" />
|
|
10
|
+
<option name="myDocStringFormat" value="Plain" />
|
|
11
|
+
</component>
|
|
12
|
+
</module>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<project version="4">
|
|
3
|
+
<component name="Black">
|
|
4
|
+
<option name="sdkName" value="Python 3.13 virtualenv at ~/python3.13_env" />
|
|
5
|
+
</component>
|
|
6
|
+
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.13 virtualenv at ~/python3.13_env" project-jdk-type="Python SDK" />
|
|
7
|
+
</project>
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<project version="4">
|
|
3
|
+
<component name="AutoImportSettings">
|
|
4
|
+
<option name="autoReloadType" value="SELECTIVE" />
|
|
5
|
+
</component>
|
|
6
|
+
<component name="ChangeListManager">
|
|
7
|
+
<list default="true" id="6720a3cc-6c0b-46cb-bb85-b452407a2980" name="Changes" comment="" />
|
|
8
|
+
<option name="SHOW_DIALOG" value="false" />
|
|
9
|
+
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
|
10
|
+
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
|
11
|
+
<option name="LAST_RESOLUTION" value="IGNORE" />
|
|
12
|
+
</component>
|
|
13
|
+
<component name="Git.Settings">
|
|
14
|
+
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/.." />
|
|
15
|
+
</component>
|
|
16
|
+
<component name="ProjectColorInfo">{
|
|
17
|
+
"associatedIndex": 5
|
|
18
|
+
}</component>
|
|
19
|
+
<component name="ProjectId" id="2yB9ZteNF5pFmuhrHRsT32pNxbW" />
|
|
20
|
+
<component name="ProjectViewState">
|
|
21
|
+
<option name="hideEmptyMiddlePackages" value="true" />
|
|
22
|
+
<option name="showLibraryContents" value="true" />
|
|
23
|
+
</component>
|
|
24
|
+
<component name="PropertiesComponent">{
|
|
25
|
+
"keyToString": {
|
|
26
|
+
"ModuleVcsDetector.initialDetectionPerformed": "true",
|
|
27
|
+
"Python.vsc.executor": "Debug",
|
|
28
|
+
"RunOnceActivity.ShowReadmeOnStart": "true",
|
|
29
|
+
"RunOnceActivity.git.unshallow": "true",
|
|
30
|
+
"git-widget-placeholder": "main",
|
|
31
|
+
"node.js.detected.package.eslint": "true",
|
|
32
|
+
"node.js.detected.package.tslint": "true",
|
|
33
|
+
"node.js.selected.package.eslint": "(autodetect)",
|
|
34
|
+
"node.js.selected.package.tslint": "(autodetect)",
|
|
35
|
+
"nodejs_package_manager_path": "npm",
|
|
36
|
+
"vue.rearranger.settings.migration": "true"
|
|
37
|
+
}
|
|
38
|
+
}</component>
|
|
39
|
+
<component name="SharedIndexes">
|
|
40
|
+
<attachedChunks>
|
|
41
|
+
<set>
|
|
42
|
+
<option value="bundled-js-predefined-d6986cc7102b-6a121458b545-JavaScript-PY-251.25410.159" />
|
|
43
|
+
<option value="bundled-python-sdk-e0ed3721d81e-36ea0e71a18c-com.jetbrains.pycharm.pro.sharedIndexes.bundled-PY-251.25410.159" />
|
|
44
|
+
</set>
|
|
45
|
+
</attachedChunks>
|
|
46
|
+
</component>
|
|
47
|
+
<component name="TaskManager">
|
|
48
|
+
<task active="true" id="Default" summary="Default task">
|
|
49
|
+
<changelist id="6720a3cc-6c0b-46cb-bb85-b452407a2980" name="Changes" comment="" />
|
|
50
|
+
<created>1749297161293</created>
|
|
51
|
+
<option name="number" value="Default" />
|
|
52
|
+
<option name="presentableId" value="Default" />
|
|
53
|
+
<updated>1749297161293</updated>
|
|
54
|
+
<workItem from="1749297163364" duration="1155000" />
|
|
55
|
+
<workItem from="1749298804721" duration="147000" />
|
|
56
|
+
<workItem from="1749299658479" duration="919000" />
|
|
57
|
+
</task>
|
|
58
|
+
<servers />
|
|
59
|
+
</component>
|
|
60
|
+
<component name="TypeScriptGeneratedFilesManager">
|
|
61
|
+
<option name="version" value="3" />
|
|
62
|
+
</component>
|
|
63
|
+
<component name="XDebuggerManager">
|
|
64
|
+
<breakpoint-manager>
|
|
65
|
+
<breakpoints>
|
|
66
|
+
<line-breakpoint enabled="true" suspend="THREAD" type="python-line">
|
|
67
|
+
<url>file://$PROJECT_DIR$/vsc.py</url>
|
|
68
|
+
<line>26</line>
|
|
69
|
+
<option name="timeStamp" value="3" />
|
|
70
|
+
</line-breakpoint>
|
|
71
|
+
</breakpoints>
|
|
72
|
+
</breakpoint-manager>
|
|
73
|
+
<watches-manager>
|
|
74
|
+
<configuration name="PythonConfigurationType">
|
|
75
|
+
<watch expression="mg.save_call_stack('stack.txt')" language="Python" />
|
|
76
|
+
<watch expression="mg.render(mg.stack_pycharm())" language="Python" />
|
|
77
|
+
</configuration>
|
|
78
|
+
</watches-manager>
|
|
79
|
+
</component>
|
|
80
|
+
<component name="com.intellij.coverage.CoverageDataManagerImpl">
|
|
81
|
+
<SUITE FILE_PATH="coverage/images$vsc.coverage" NAME="vsc Coverage Results" MODIFIED="1749300268269" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" />
|
|
82
|
+
</component>
|
|
83
|
+
</project>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
digraph memory_graph {
|
|
2
2
|
node [shape=plaintext]
|
|
3
|
-
|
|
3
|
+
node123501132205632 [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
|
+
node123501131031488 [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
|
+
node123501130294400 [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
|
+
node123501130853888 [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
|
+
node123501130853888:ref0 -> node123501132205632:table [style=solid]
|
|
32
|
+
node123501130853888:ref1 -> node123501131031488:table [style=solid]
|
|
33
|
+
node123501130853888:ref2 -> node123501130294400:table [style=solid]
|
|
34
|
+
node123501132148592 [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
|
+
node123501131031872 [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
|
+
node123501126452672 [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
|
+
node123501126452672:ref0 -> node123501132205632:table [style=solid]
|
|
57
|
+
node123501126452672:ref1 -> node123501132148592:table [style=solid]
|
|
58
|
+
node123501126452672:ref2 -> node123501131031872:table [style=solid]
|
|
59
|
+
node123501126509712 [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
|
+
node123501126509712:ref0 -> node123501130853888:table [style=solid]
|
|
66
|
+
node123501126509712:ref1 -> node123501126452672:table [style=solid]
|
|
67
|
+
subgraph { rank=same; node123501130853888 -> node123501126452672[weight=10, style=invis]; }
|
|
68
|
+
subgraph { rank=same; node123501132205632 -> node123501131031488 -> node123501130294400 -> node123501132148592 -> node123501131031872[weight=10, style=invis]; }
|
|
69
69
|
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import memory_graph as mg
|
|
2
|
+
import bintrees
|
|
3
|
+
|
|
4
|
+
# Create an AVL tree
|
|
5
|
+
tree = bintrees.AVLTree()
|
|
6
|
+
tree.insert(10, "ten")
|
|
7
|
+
tree.insert(5, "five")
|
|
8
|
+
tree.insert(20, "twenty")
|
|
9
|
+
tree.insert(15, "fifteen")
|
|
10
|
+
|
|
11
|
+
mg.render(locals(), 'avltree_fail.png')
|
|
12
|
+
|
|
13
|
+
mg.config.type_to_color[bintrees.avltree.Node] = "sandybrown"
|
|
14
|
+
mg.render(locals(), 'avltree_color.png')
|
|
15
|
+
|
|
16
|
+
mg.config.type_to_node[bintrees.avltree.Node] = lambda data: mg.node_linear.Node_Linear(data, dir(data))
|
|
17
|
+
mg.config.type_to_slicer[bintrees.avltree.Node] = mg.slicer.Slicer()
|
|
18
|
+
mg.render(locals(), 'avltree_dir.png')
|
|
19
|
+
|
|
20
|
+
mg.config.type_to_node[bintrees.avltree.Node] = lambda data: mg.node_base.Node_Base(f"key:{data.key} value:{data.value}")
|
|
21
|
+
mg.render(locals(), 'avltree_base.png')
|
|
22
|
+
|
|
23
|
+
mg.config.type_to_node[bintrees.avltree.Node] = lambda data: mg.node_linear.Node_Linear(data,
|
|
24
|
+
['left', data.left,
|
|
25
|
+
'key', data.key,
|
|
26
|
+
'value', data.value,
|
|
27
|
+
'right', data.right])
|
|
28
|
+
mg.render(locals(), 'avltree_linear.png')
|
|
29
|
+
|
|
30
|
+
mg.config.type_to_node[bintrees.avltree.Node] = lambda data: mg.node_key_value.Node_Key_Value(data,
|
|
31
|
+
{'left': data.left,
|
|
32
|
+
'key': data.key,
|
|
33
|
+
'value': data.value,
|
|
34
|
+
'right': data.right}.items())
|
|
35
|
+
mg.render(locals(), 'avltree_key_value.png')
|
|
36
|
+
|
|
37
|
+
mg.config.type_to_node[bintrees.avltree.Node] = lambda data: mg.node_table.Node_Table(data,
|
|
38
|
+
[[data.key, data.value],
|
|
39
|
+
[data.left, data.right]]
|
|
40
|
+
)
|
|
41
|
+
mg.render(locals(), 'avltree_table.png')
|
|
@@ -1,55 +1,57 @@
|
|
|
1
1
|
digraph memory_graph {
|
|
2
2
|
node [shape=plaintext]
|
|
3
|
-
|
|
3
|
+
node140717000093552 [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>
|
|
7
7
|
<TR><TD BORDER="0"><font color="#505050">2</font></TD><TD BORDER="1"> __dir__ </TD></TR>
|
|
8
8
|
<TR><TD BORDER="0"><font color="#505050">3</font></TD><TD BORDER="1"> __doc__ </TD></TR>
|
|
9
9
|
<TR><TD BORDER="0"><font color="#505050">4</font></TD><TD BORDER="1"> __eq__ </TD></TR>
|
|
10
|
-
<TR><TD BORDER="0"><font color="#505050">5</font></TD><TD BORDER="1">
|
|
11
|
-
<TR><TD BORDER="0"><font color="#505050">6</font></TD><TD BORDER="1">
|
|
12
|
-
<TR><TD BORDER="0"><font color="#505050">7</font></TD><TD BORDER="1">
|
|
13
|
-
<TR><TD BORDER="0"><font color="#505050">8</font></TD><TD BORDER="1">
|
|
14
|
-
<TR><TD BORDER="0"><font color="#505050">9</font></TD><TD BORDER="1">
|
|
15
|
-
<TR><TD BORDER="0"><font color="#505050">10</font></TD><TD BORDER="1">
|
|
16
|
-
<TR><TD BORDER="0"><font color="#505050">11</font></TD><TD BORDER="1">
|
|
17
|
-
<TR><TD BORDER="0"><font color="#505050">12</font></TD><TD BORDER="1">
|
|
18
|
-
<TR><TD BORDER="0"><font color="#505050">13</font></TD><TD BORDER="1">
|
|
19
|
-
<TR><TD BORDER="0"><font color="#505050">14</font></TD><TD BORDER="1">
|
|
20
|
-
<TR><TD BORDER="0"><font color="#505050">15</font></TD><TD BORDER="1">
|
|
21
|
-
<TR><TD BORDER="0"><font color="#505050">16</font></TD><TD BORDER="1">
|
|
22
|
-
<TR><TD BORDER="0"><font color="#505050">17</font></TD><TD BORDER="1">
|
|
23
|
-
<TR><TD BORDER="0"><font color="#505050">18</font></TD><TD BORDER="1">
|
|
24
|
-
<TR><TD BORDER="0"><font color="#505050">19</font></TD><TD BORDER="1">
|
|
25
|
-
<TR><TD BORDER="0"><font color="#505050">20</font></TD><TD BORDER="1">
|
|
26
|
-
<TR><TD BORDER="0"><font color="#505050">21</font></TD><TD BORDER="1">
|
|
27
|
-
<TR><TD BORDER="0"><font color="#505050">22</font></TD><TD BORDER="1">
|
|
28
|
-
<TR><TD BORDER="0"><font color="#505050">23</font></TD><TD BORDER="1">
|
|
29
|
-
<TR><TD BORDER="0"><font color="#505050">24</font></TD><TD BORDER="1">
|
|
30
|
-
<TR><TD BORDER="0"><font color="#505050">25</font></TD><TD BORDER="1">
|
|
31
|
-
<TR><TD BORDER="0"><font color="#505050">26</font></TD><TD BORDER="1">
|
|
32
|
-
<TR><TD BORDER="0"><font color="#505050">27</font></TD><TD BORDER="1">
|
|
33
|
-
<TR><TD BORDER="0"><font color="#505050">28</font></TD><TD BORDER="1">
|
|
34
|
-
<TR><TD BORDER="0"><font color="#505050">29</font></TD><TD BORDER="1">
|
|
35
|
-
<TR><TD BORDER="0"><font color="#505050">30</font></TD><TD BORDER="1">
|
|
36
|
-
<TR><TD BORDER="0"><font color="#505050">31</font></TD><TD BORDER="1">
|
|
37
|
-
<TR><TD BORDER="0"><font color="#505050">32</font></TD><TD BORDER="1">
|
|
38
|
-
<TR><TD BORDER="0"><font color="#505050">33</font></TD><TD BORDER="1">
|
|
10
|
+
<TR><TD BORDER="0"><font color="#505050">5</font></TD><TD BORDER="1"> __firstlineno__ </TD></TR>
|
|
11
|
+
<TR><TD BORDER="0"><font color="#505050">6</font></TD><TD BORDER="1"> __format__ </TD></TR>
|
|
12
|
+
<TR><TD BORDER="0"><font color="#505050">7</font></TD><TD BORDER="1"> __ge__ </TD></TR>
|
|
13
|
+
<TR><TD BORDER="0"><font color="#505050">8</font></TD><TD BORDER="1"> __getattribute__ </TD></TR>
|
|
14
|
+
<TR><TD BORDER="0"><font color="#505050">9</font></TD><TD BORDER="1"> __getitem__ </TD></TR>
|
|
15
|
+
<TR><TD BORDER="0"><font color="#505050">10</font></TD><TD BORDER="1"> __getstate__ </TD></TR>
|
|
16
|
+
<TR><TD BORDER="0"><font color="#505050">11</font></TD><TD BORDER="1"> __gt__ </TD></TR>
|
|
17
|
+
<TR><TD BORDER="0"><font color="#505050">12</font></TD><TD BORDER="1"> __hash__ </TD></TR>
|
|
18
|
+
<TR><TD BORDER="0"><font color="#505050">13</font></TD><TD BORDER="1"> __init__ </TD></TR>
|
|
19
|
+
<TR><TD BORDER="0"><font color="#505050">14</font></TD><TD BORDER="1"> __init_subclass__ </TD></TR>
|
|
20
|
+
<TR><TD BORDER="0"><font color="#505050">15</font></TD><TD BORDER="1"> __le__ </TD></TR>
|
|
21
|
+
<TR><TD BORDER="0"><font color="#505050">16</font></TD><TD BORDER="1"> __lt__ </TD></TR>
|
|
22
|
+
<TR><TD BORDER="0"><font color="#505050">17</font></TD><TD BORDER="1"> __module__ </TD></TR>
|
|
23
|
+
<TR><TD BORDER="0"><font color="#505050">18</font></TD><TD BORDER="1"> __ne__ </TD></TR>
|
|
24
|
+
<TR><TD BORDER="0"><font color="#505050">19</font></TD><TD BORDER="1"> __new__ </TD></TR>
|
|
25
|
+
<TR><TD BORDER="0"><font color="#505050">20</font></TD><TD BORDER="1"> __reduce__ </TD></TR>
|
|
26
|
+
<TR><TD BORDER="0"><font color="#505050">21</font></TD><TD BORDER="1"> __reduce_ex__ </TD></TR>
|
|
27
|
+
<TR><TD BORDER="0"><font color="#505050">22</font></TD><TD BORDER="1"> __repr__ </TD></TR>
|
|
28
|
+
<TR><TD BORDER="0"><font color="#505050">23</font></TD><TD BORDER="1"> __setattr__ </TD></TR>
|
|
29
|
+
<TR><TD BORDER="0"><font color="#505050">24</font></TD><TD BORDER="1"> __setitem__ </TD></TR>
|
|
30
|
+
<TR><TD BORDER="0"><font color="#505050">25</font></TD><TD BORDER="1"> __sizeof__ </TD></TR>
|
|
31
|
+
<TR><TD BORDER="0"><font color="#505050">26</font></TD><TD BORDER="1"> __slots__ </TD></TR>
|
|
32
|
+
<TR><TD BORDER="0"><font color="#505050">27</font></TD><TD BORDER="1"> __static_attributes__ </TD></TR>
|
|
33
|
+
<TR><TD BORDER="0"><font color="#505050">28</font></TD><TD BORDER="1"> __str__ </TD></TR>
|
|
34
|
+
<TR><TD BORDER="0"><font color="#505050">29</font></TD><TD BORDER="1"> __subclasshook__ </TD></TR>
|
|
35
|
+
<TR><TD BORDER="0"><font color="#505050">30</font></TD><TD BORDER="1"> balance </TD></TR>
|
|
36
|
+
<TR><TD BORDER="0"><font color="#505050">31</font></TD><TD BORDER="1"> free </TD></TR>
|
|
37
|
+
<TR><TD BORDER="0"><font color="#505050">32</font></TD><TD BORDER="1"> key </TD></TR>
|
|
38
|
+
<TR><TD BORDER="0"><font color="#505050">33</font></TD><TD BORDER="1"> left </TD></TR>
|
|
39
|
+
<TR><TD BORDER="0"><font color="#505050">34</font></TD><TD BORDER="1"> right </TD></TR>
|
|
40
|
+
<TR><TD BORDER="0"><font color="#505050">35</font></TD><TD BORDER="1"> value </TD></TR>
|
|
39
41
|
</TABLE>
|
|
40
42
|
> xlabel="Node"]
|
|
41
|
-
|
|
43
|
+
node140716987336416 [label=<
|
|
42
44
|
<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="seagreen1" PORT="table">
|
|
43
45
|
<TR><TD BORDER="1" STYLE="ROUNDED"> _root </TD><TD BORDER="1" STYLE="ROUNDED"> _count </TD></TR>
|
|
44
46
|
<TR><TD BORDER="1" PORT="ref0"> </TD><TD BORDER="1"> 4 </TD></TR>
|
|
45
47
|
</TABLE>
|
|
46
48
|
> xlabel=AVLTree]
|
|
47
|
-
|
|
48
|
-
|
|
49
|
+
node140716987336416:ref0 -> node140717000093552:table [style=solid]
|
|
50
|
+
node140716989974400 [label=<
|
|
49
51
|
<TABLE BORDER="3" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="#60a5ff" PORT="table">
|
|
50
52
|
<TR><TD BORDER="1" STYLE="ROUNDED"> tree </TD></TR>
|
|
51
53
|
<TR><TD BORDER="1" PORT="ref0"> </TD></TR>
|
|
52
54
|
</TABLE>
|
|
53
55
|
> xlabel=dict]
|
|
54
|
-
|
|
56
|
+
node140716989974400:ref0 -> node140716987336416:table [style=solid]
|
|
55
57
|
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
digraph memory_graph {
|
|
2
|
+
node [shape=plaintext]
|
|
3
|
+
node124172493692400 [label=<
|
|
4
|
+
<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="white" PORT="table">
|
|
5
|
+
<TR><TD BORDER="1"> <bintrees.avltree.Node object at 0x70ef296... </TD></TR>
|
|
6
|
+
</TABLE>
|
|
7
|
+
> xlabel="Node"]
|
|
8
|
+
node124172492521984 [label=<
|
|
9
|
+
<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="seagreen1" PORT="table">
|
|
10
|
+
<TR><TD BORDER="1" STYLE="ROUNDED"> _root </TD><TD BORDER="1" STYLE="ROUNDED"> _count </TD></TR>
|
|
11
|
+
<TR><TD BORDER="1" PORT="ref0"> </TD><TD BORDER="1"> 4 </TD></TR>
|
|
12
|
+
</TABLE>
|
|
13
|
+
> xlabel=AVLTree]
|
|
14
|
+
node124172492521984:ref0 -> node124172493692400:table [style=solid]
|
|
15
|
+
node124172495724224 [label=<
|
|
16
|
+
<TABLE BORDER="3" CELLBORDER="1" CELLSPACING="5" CELLPADDING="0" BGCOLOR="#60a5ff" PORT="table">
|
|
17
|
+
<TR><TD BORDER="1" STYLE="ROUNDED"> tree </TD></TR>
|
|
18
|
+
<TR><TD BORDER="1" PORT="ref0"> </TD></TR>
|
|
19
|
+
</TABLE>
|
|
20
|
+
> xlabel=dict]
|
|
21
|
+
node124172495724224:ref0 -> node124172492521984:table [style=solid]
|
|
22
|
+
}
|