Skip to content

Tools for cataloging and analyzing the chain of dependencies between all versions of all packages available on PyPI.

Notifications You must be signed in to change notification settings

AustinTSchaffer/PyPI-Dependency-Graph

Repository files navigation

Python Package Dependency Graph

Project goal: catalogue the dependency chain for all versions of all* packages.

* This requirement will likely be revised.

My hypothesis is that you can dramatically speed up package version resolution, especially in a few hand-crafted failure cases. Such failure cases include fairly innocuous-looking pip install commands:

  • pip install 'z3-solver<4.11' crosshair-tool
  • pip install boto3 "botocore==1.23.54"
  • pip install boto3 'urllib3<1'

The reason why I believe these can be improved is because there's no reverse-dependency information available anywhere online. Essentially, each version of boto3 knows which versions of botocore it depends on, but neither botocore nor PyPI know which versions of boto3 depend on specific versions of botocore.

Screenshots

RabbitMQ

Below is a screenshot from RabbitMQ showing 1.2M messages being processed, mostly distribution records.

Below is a screenshot from RabbitMQ showing 500k messages being processed from the distributions queue. This screenshot was taken while the cluster was processing all of the PyPI packages which begin with the letter "A".

Postgres

Below is a screenshot from Postgres showing a breakdown of each table's estimated row count and total size. In this screengrab, which was taken while the system was beginning to process all of the PyPI packages that start with the letter "A", the database is about 5.5GB in size.

Docker Swarm Visualizer

Below is a screenshot from Docker Swarm Visualizer showing the roles of each node in my Pi cluster, plus some of the applications which are running on it.

Tmux

Below is a screenshot of a terminal showing multiple tmux panes, most of them running htop on all of the worker nodes in the cluster, plus a pane listing the running service replicas.

See Also

Docker Stack

Docker swarm/stack resources are based on my RPI cluster project.

https://github.com/AustinTSchaffer/Raspberry-Pi-Cluster-Ansible

About

Tools for cataloging and analyzing the chain of dependencies between all versions of all packages available on PyPI.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published