this post was submitted on 31 May 2026
14 points (100.0% liked)

programming

301 readers
14 users here now

  1. Post about programming, interesting repos, learning to program, etc. Let's try to keep free software posts in the c/libre comm unless the post is about the programming/is to the repo.

  2. Do not doxx yourself by posting a repo that is yours and in any way leads to your personally identifying information. Use reports if necessary to alert mods to a potential doxxing.

  3. Be kind, keep struggle sessions focused on the topic of programming.

founded 2 years ago
MODERATORS
 

I've been using a package called pyvis for a while to help visualize general graph data, but it's been pretty limited in terms of exposed API for vis.js (which is what it renders in) so I've been working on a more general full featured wrapper in Python that uses a fast graph library backend.

My test project is to visualize the repository as an interactive graph. It builds the html template in under a second right now and I'm planning on trying to make it something you can use to generate interactive repo graphs with.

It's still very WIP, but I think it's fun so I wanted to share.

Also, you can double click any node to have it open the source on GitHub. My goal is to make it host agnostic so you can just slap a repo url in there and it'll generate a graph with properly formatted links. I've got all the components exposed though, so you can manipulate how the link is generated as needed.

you are viewing a single comment's thread
view the rest of the comments
[–] invalidusernamelol@hexbear.net 1 points 5 days ago* (last edited 5 days ago) (1 children)

I might end up doing that, or just disabling physics when I need to, but still use visjs.

I just had to make a PR today because the node system wont properly resolve size when using icon shapes lol.

I might need with ast stuff tomorrow and see if I can try and get a rudimentary version of what you have working with pygraph. I'd probably have it generate multiple graphs from a view (e.g. module -> class, then click a class to get class -> function, or use hidden edges for some things and put everything in different style groups based on inheritance?).

Would also be cool to keep the GitHub links in place, but instead tie the link with the symbol line number so you get a permalink

[–] QuillcrestFalconer@hexbear.net 1 points 4 days ago (1 children)

ast stuff tomorrow and see if I can try and get a rudimentary version of what you have working with pygraph.

For mine I wrote a python script walking through the ast of a python project to generate the graph, so that I had a graph on hand I could use to build and test the visualizer.

Last time I worked on it I started implementing the package for the vscode extension and wrote some typescript code to build a graph for typescript/javascript files. It is still very barebones but I managed to get the basic extension set up working. Haven't worked on it in a while though.

If you want I can dm you the git repo and the .io with the frontend

I'm down, I already dm'd you about some changes I made