Skip to main content

A compact Python library for modeling, analyzing, and visualizing optical network topologies.

Project description

Topolib 🚀

Python Version License Issues Develop coverage Release coverage Documentation Status

Topolib is a compact, modular Python library for modeling, analyzing, and visualizing optical network topologies.
Goal: Provide researchers and engineers with a simple, extensible toolkit for working with nodes, links, metrics, and map-based visualizations.

🌐 Model | 📊 Analyze | 🗺️ Visualize | 🧩 Extend


📂 Examples

Explore ready-to-run usage examples in the examples/ folder!


🧭 Overview

Topolib is organized into four main modules:

  • 🧱 Elements: Node, Link — basic building blocks
  • 🕸️ Topology: Topology, Path — manage nodes, links, paths, and adjacency
  • 📈 Analysis: Metrics — compute node degree, link stats, connection matrices
  • 🖼️ Visualization: MapView — interactive maps with Folium and PyQt6, clean PNG exports

✨ Features

  • Modular, extensible design
  • Easy-to-use classes for nodes, links, and paths
  • Built-in metrics and analysis helpers
  • Interactive map visualization with Folium and PyQt6
  • Clean PNG export without external dependencies (no Selenium required)
  • Resource caching for faster map rendering
  • JSON import/export and interoperability
  • Ready for Sphinx, Read the Docs, and PyPI

⚡ Quickstart

python -m venv .venv
source .venv/bin/activate
pip install -U pip
pip install topolib

📚 Documentation

Full documentation: https://topolib.readthedocs.io/


📝 Basic usage

from topolib.elements.node import Node
from topolib.topology.topology import Topology

n1 = Node(1, 'A', 10.0, 20.0)
n2 = Node(2, 'B', 11.0, 21.0)
topo = Topology(nodes=[n1, n2])
# Add links, compute metrics, visualize, etc.

🛠️ Development

See CONTRIBUTING.md for development guidelines, commit message rules, and pre-commit setup.


📄 License

MIT — see LICENSE for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

topolib-0.7.1.tar.gz (66.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

topolib-0.7.1-py3-none-any.whl (88.0 kB view details)

Uploaded Python 3

File details

Details for the file topolib-0.7.1.tar.gz.

File metadata

  • Download URL: topolib-0.7.1.tar.gz
  • Upload date:
  • Size: 66.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.11.14 Linux/5.15.154+

File hashes

Hashes for topolib-0.7.1.tar.gz
Algorithm Hash digest
SHA256 e68e7b6929fac08170e2706a5b0a1f793d96aba8dd69aaee65dea4353b420a7e
MD5 fe00c8b40f010524c99d33b757595262
BLAKE2b-256 160a126db0ee0e47106c87fbe5d5d79b966ff69553d4aa48e70cba5727985c3e

See more details on using hashes here.

File details

Details for the file topolib-0.7.1-py3-none-any.whl.

File metadata

  • Download URL: topolib-0.7.1-py3-none-any.whl
  • Upload date:
  • Size: 88.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.11.14 Linux/5.15.154+

File hashes

Hashes for topolib-0.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 fb4d10589e7bdb4b8ac4fe868f8fea4ca8552b6d6db1ff2a5dd631ce7a998e9a
MD5 abc6b7f9ad9d598d7fad87b6cbcab076
BLAKE2b-256 ed10af369f5670f7b1972fa7542aa0de7408d72d9dc925347fdcd26b6d057db4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page