Skip to main content

Structoscope

License Python Version Build Coverage GitHub last commit Documentation Status

Structoscope is a Python library for visualizing and inspecting any data structure.

Install

The only external dependency is the graphviz binary, which you can install buy running the following command in the terminal.

brew install graphviz

Now you can install structoscope by running the following command in the terminal.

pip3 install structoscope

Documentation

You can find the documentation for this project here.

Examples

Lists

Structoscope can easily display Python lists:

from structoscope import Scope

s = Scope()
testList = [1,2,3]
s.print(testList)
input() # block the main thread

Example 1

Multi-dimensional Lists

It can even display multi-dimensional lists:

from structoscope import Scope

s = Scope()
testList = [
    [1,2],
    [
        ['a', 'b'],
        ['c', 'd']
    ],
    'abc'
]
s.print(testList)
input() # block the main thread

Example 2

Dictionaries

Or it can display dictionaries:

from structoscope import Scope

s = Scope()
testDict = {
    'first' : 101,
    'second' : 102,
    'third' : 103,
}
s.print(testDict)
input() # block the main thread

Example 3

Trees

It can even display trees:

from structoscope import Scope

class Node:
    def __init__(self, val=None, children=[]):
        self.val = val
        self.children = children

s = Scope(
    dataMemberName='val',
    childrenMemberName='children'
)

node9 = Node(val='J')
node8 = Node(val='I')
node7 = Node(val='H')
node6 = Node(val='G')
node5 = Node(val='F')
node4 = Node(val='E')
node3 = Node(val='D', children=[node8, node9])
node2 = Node(val='C', children=[node6, node7])
node1 = Node(val='B', children=[node4, node5])
root = Node(val='A', children=[node1, node2, node3])

s.print(root)
input() # block the main thread

Example 4

What's up with the name?

I think of it as a stethoscope whose purpose is to inspect a struct. A Struct-o-scope!

Release files for structoscope 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for structoscope 0.2.1
File Size Uploaded
structoscope-0.2.1.tar.gz 6.0 kB Details

Release files / structoscope-0.2.1.tar.gz

Download URL structoscope-0.2.1.tar.gz
Size 6.0 kB
Tags Source
SHA-256 checksum
How to use checksums
a137dd235b33ae2ba537c91e42ffa7b08dfe0a43179fb897ffaeb361392d9ae7
BLAKE2b-256 checksum
How to use checksums
6be2e9dd215b901baf59b5a179299bb18888da38cbdb802d3e555ca98a92f53b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.6.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.6

Release history Release notifications | RSS feed

This release

0.2.1 This release

1 release file

0.2.0

1 release file

0.1.1

1 release file

0.1.0

3 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page