All Projects → tilboerner → depx

tilboerner / depx

Licence: other
Examine and visualize dependencies used by Python modules 🔍

Programming Languages

python
139335 projects - #7 most used programming language
HTML
75241 projects
Makefile
30231 projects

Projects that are alternatives of or similar to depx

vrpy
A python framework for solving the VRP and its variants with column generation.
Stars: ✭ 94 (+394.74%)
Mutual labels:  networkx
gqlalchemy
GQLAlchemy is a library developed with the purpose of assisting in writing and running queries on Memgraph. GQLAlchemy supports high-level connection to Memgraph as well as modular query builder.
Stars: ✭ 39 (+105.26%)
Mutual labels:  networkx
yavdb
Yet Another Vulnerability Database
Stars: ✭ 14 (-26.32%)
Mutual labels:  dependencies
Friends-Recommender-In-Social-Network
Friends Recommendation and Link Prediction in Social Netowork
Stars: ✭ 33 (+73.68%)
Mutual labels:  networkx
LNTopology
A tool to analyze the topology of Bitcoin's Lightning Network
Stars: ✭ 19 (+0%)
Mutual labels:  networkx
Awesome Community Detection
A curated list of community detection research papers with implementations.
Stars: ✭ 1,874 (+9763.16%)
Mutual labels:  networkx
Final Project
Using Twitter Ego Network Analysis to Detect Sources of Fake News
Stars: ✭ 44 (+131.58%)
Mutual labels:  networkx
Social-Network-Analysis-in-Python
Social Network Facebook Analysis (Python, Networkx)
Stars: ✭ 26 (+36.84%)
Mutual labels:  networkx
disparity filter
Implements a disparity filter in Python, based on graphs in NetworkX, to extract the multiscale backbone of a complex weighted network (Serrano, et al., 2009)
Stars: ✭ 17 (-10.53%)
Mutual labels:  networkx
bandmaster
Simple and easily extendable Go library for managing runtime services & dependencies (datastores, APIs, MQs, custom...).
Stars: ✭ 43 (+126.32%)
Mutual labels:  dependencies
netdiff
Python library for parsing network topology data (eg: dynamic routing protocols, OpenVPN, NetJSON, CNML) and detect changes.
Stars: ✭ 66 (+247.37%)
Mutual labels:  networkx
flownetwork
A python package for flow network analysis
Stars: ✭ 22 (+15.79%)
Mutual labels:  networkx
Stellargraph
StellarGraph - Machine Learning on Graphs
Stars: ✭ 2,235 (+11663.16%)
Mutual labels:  networkx
networkx-neo4j
NetworkX API for Neo4j Graph Algorithms.
Stars: ✭ 98 (+415.79%)
Mutual labels:  networkx
module-dependents
Get the list of npm modules that depend on the specified npm module.
Stars: ✭ 15 (-21.05%)
Mutual labels:  dependencies
lightflow
A lightweight, distributed workflow system
Stars: ✭ 67 (+252.63%)
Mutual labels:  networkx
Osmnx
OSMnx: Python for street networks. Retrieve, model, analyze, and visualize street networks and other spatial data from OpenStreetMap.
Stars: ✭ 3,357 (+17568.42%)
Mutual labels:  networkx
parcel-plugin-externals
Parcel plugin for declaring externals. These externals will not be bundled. 📦
Stars: ✭ 47 (+147.37%)
Mutual labels:  dependencies
minver
What are the minimum dependencies for your package?
Stars: ✭ 18 (-5.26%)
Mutual labels:  dependencies
eleventy-load
Resolve dependencies and post-process files in your Eleventy project
Stars: ✭ 28 (+47.37%)
Mutual labels:  dependencies

Depx

Build Status

Examine and visualize dependencies used by Python modules.

This is a simple, exploratory prototype for now. The goal is to use explicit import statements in a module to identify the names of its dependencies. This will not always produce a complete picture of all other code a module uses, since there is a multitude of ways to import or reference other code dynamically. Idiomatic Django, for example, uses a number of them. Those are all out of scope, however, although some might get considered at a later time.

In this early stage, all functionality, structure and interfaces are subject to radical and surprising changes.

Dev setup

You're going to need Poetry and tox.

After cloning the repo, set up the dev environment:

$ cd depx
$ poetry install --no-root

Run tests:

$ make test

Lint:

$ make lint

Comprehensive test suite:

$ tox

Add dependencies:

$ poetry add [--dev] <PACKAGE_NAME>

Envisioned use cases

The project should enable the following use cases, but might do so by handing off the right kind of data to other software. If we do different things ourselves, they should end up in different commands (or at least subcommands).

  • visualize dependencies of module, package or project
  • identify dependency cycles
  • help identify unused dependencies

Existing and potential functionality

Sketch of ideas. This is not meant as a plan, but to guide initial development.

Find dependencies

  • identify all explicit imports a module makes
  • same for whole packages
  • same for arbitrary directories
  • identify local imports (those are smelly)
  • distinguish built-in, 3rd party and local dependencies

Names

  • show fully qualified names for importing module and dependency
  • ability to show only top-level names
  • resolve relative imports to proper names
  • resolve * imports

Output formats

depx my-awesome-project --format html

The identified dependencies are the edges of a directed graph. Output formats should include several standard ways to consume such data.

  • JSON
  • GraphML
  • browser-ready HTML with visualization
  • Graphviz (.dot)
  • text with columns (to compose with Unix pipes)
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].