| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | """ |
| | display the reference paths for objects in ``dill.types`` or a .pkl file |
| |
|
| | Notes: |
| | the generated image is useful in showing the pointer references in |
| | objects that are or can be pickled. Any object in ``dill.objects`` |
| | listed in ``dill.load_types(picklable=True, unpicklable=True)`` works. |
| |
|
| | Examples:: |
| |
|
| | $ get_objgraph FrameType |
| | Image generated as FrameType.png |
| | """ |
| |
|
| | import dill as pickle |
| | |
| | |
| |
|
| | |
| | from dill import load_types |
| | load_types(pickleable=True,unpickleable=True) |
| | from dill import objects |
| |
|
| | if __name__ == "__main__": |
| | import sys |
| | if len(sys.argv) != 2: |
| | print ("Please provide exactly one file or type name (e.g. 'IntType')") |
| | msg = "\n" |
| | for objtype in list(objects.keys())[:40]: |
| | msg += objtype + ', ' |
| | print (msg + "...") |
| | else: |
| | objtype = str(sys.argv[-1]) |
| | try: |
| | obj = objects[objtype] |
| | except KeyError: |
| | obj = pickle.load(open(objtype,'rb')) |
| | import os |
| | objtype = os.path.splitext(objtype)[0] |
| | try: |
| | import objgraph |
| | objgraph.show_refs(obj, filename=objtype+'.png') |
| | except ImportError: |
| | print ("Please install 'objgraph' to view object graphs") |
| |
|
| |
|
| | |
| |
|