topolib


Nametopolib JSON
Version 0.7.0 PyPI version JSON
download
home_pagehttps://gitlab.com/DaniloBorquez/topolib
SummaryA compact Python library for modeling, analyzing, and visualizing optical network topologies.
upload_time2025-10-22 16:24:27
maintainerNone
docs_urlNone
authorDanilo Bórquez-Paredes
requires_python>=3.10
licenseMIT
keywords network topology optical analysis visualization
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Topolib 🚀

[![Python Version](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/)
[![License](https://img.shields.io/badge/license-MIT-lightgrey.svg)](LICENSE)
[![Issues](https://img.shields.io/badge/issues-on%20GitLab-blue.svg)](https://gitlab.com/DaniloBorquez/topolib/-/issues)
[![Develop coverage](https://gitlab.com/DaniloBorquez/topolib/badges/develop/coverage.svg)](https://gitlab.com/DaniloBorquez/topolib/-/pipelines?ref=develop)
[![Release coverage](https://gitlab.com/DaniloBorquez/topolib/badges/release/coverage.svg)](https://gitlab.com/DaniloBorquez/topolib/-/pipelines?ref=release)
[![Documentation Status](https://readthedocs.org/projects/topolib/badge/?version=latest)](https://topolib.readthedocs.io/en/latest/?badge=latest)

> **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/`](examples/) folder!

- [Show topology on a map](examples/show_topology_in_map.py) 🗺️
- [Show default topology in map](examples/show_default_topology_in_map.py) 🗺️
- [Export topology as PNG](examples/export_topology_png.py) 🖼️
- [Export topology to CSV and JSON](examples/export_csv_json.py) 📄
- [Export topology and k-shortest paths for FlexNetSim](examples/export_flexnetsim.py) 🔀

---

## 🧭 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` — plot topologies on real maps

---

## ✨ Features

- Modular, extensible design
- Easy-to-use classes for nodes, links, and paths
- Built-in metrics and analysis helpers
- JSON import/export and interoperability
- Ready for Sphinx, Read the Docs, and PyPI

---

## ⚡ Quickstart

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

---

## 📚 Documentation

Full documentation: [https://topolib.readthedocs.io/](https://topolib.readthedocs.io/)

---

## 📝 Basic usage

```python
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`](CONTRIBUTING.md) for development guidelines, commit message rules, and pre-commit setup.

---

## 📄 License

MIT — see [`LICENSE`](LICENSE) for details.

            

Raw data

            {
    "_id": null,
    "home_page": "https://gitlab.com/DaniloBorquez/topolib",
    "name": "topolib",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "network, topology, optical, analysis, visualization",
    "author": "Danilo B\u00f3rquez-Paredes",
    "author_email": "danilo.borquez.p@uai.cl",
    "download_url": "https://files.pythonhosted.org/packages/d4/4b/910d04be2a00a03ad44e1bb1d1bf947c9f7f76a42482e25e88e3a5b12a83/topolib-0.7.0.tar.gz",
    "platform": null,
    "description": "# Topolib \ud83d\ude80\n\n[![Python Version](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/)\n[![License](https://img.shields.io/badge/license-MIT-lightgrey.svg)](LICENSE)\n[![Issues](https://img.shields.io/badge/issues-on%20GitLab-blue.svg)](https://gitlab.com/DaniloBorquez/topolib/-/issues)\n[![Develop coverage](https://gitlab.com/DaniloBorquez/topolib/badges/develop/coverage.svg)](https://gitlab.com/DaniloBorquez/topolib/-/pipelines?ref=develop)\n[![Release coverage](https://gitlab.com/DaniloBorquez/topolib/badges/release/coverage.svg)](https://gitlab.com/DaniloBorquez/topolib/-/pipelines?ref=release)\n[![Documentation Status](https://readthedocs.org/projects/topolib/badge/?version=latest)](https://topolib.readthedocs.io/en/latest/?badge=latest)\n\n> **Topolib** is a compact, modular Python library for modeling, analyzing, and visualizing optical network topologies.  \n> **Goal:** Provide researchers and engineers with a simple, extensible toolkit for working with nodes, links, metrics, and map-based visualizations.  \n>   \n> \ud83c\udf10 **Model** | \ud83d\udcca **Analyze** | \ud83d\uddfa\ufe0f **Visualize** | \ud83e\udde9 **Extend**\n\n---\n\n## \ud83d\udcc2 Examples\n\n\nExplore ready-to-run usage examples in the [`examples/`](examples/) folder!\n\n- [Show topology on a map](examples/show_topology_in_map.py) \ud83d\uddfa\ufe0f\n- [Show default topology in map](examples/show_default_topology_in_map.py) \ud83d\uddfa\ufe0f\n- [Export topology as PNG](examples/export_topology_png.py) \ud83d\uddbc\ufe0f\n- [Export topology to CSV and JSON](examples/export_csv_json.py) \ud83d\udcc4\n- [Export topology and k-shortest paths for FlexNetSim](examples/export_flexnetsim.py) \ud83d\udd00\n\n---\n\n## \ud83e\udded Overview\n\nTopolib is organized into four main modules:\n\n- \ud83e\uddf1 **Elements:** `Node`, `Link` \u2014 basic building blocks\n- \ud83d\udd78\ufe0f **Topology:** `Topology`, `Path` \u2014 manage nodes, links, paths, and adjacency\n- \ud83d\udcc8 **Analysis:** `Metrics` \u2014 compute node degree, link stats, connection matrices\n- \ud83d\uddbc\ufe0f **Visualization:** `MapView` \u2014 plot topologies on real maps\n\n---\n\n## \u2728 Features\n\n- Modular, extensible design\n- Easy-to-use classes for nodes, links, and paths\n- Built-in metrics and analysis helpers\n- JSON import/export and interoperability\n- Ready for Sphinx, Read the Docs, and PyPI\n\n---\n\n## \u26a1 Quickstart\n\n```bash\npython -m venv .venv\nsource .venv/bin/activate\npip install -U pip\npip install topolib\n```\n\n---\n\n## \ud83d\udcda Documentation\n\nFull documentation: [https://topolib.readthedocs.io/](https://topolib.readthedocs.io/)\n\n---\n\n## \ud83d\udcdd Basic usage\n\n```python\nfrom topolib.elements.node import Node\nfrom topolib.topology.topology import Topology\n\nn1 = Node(1, 'A', 10.0, 20.0)\nn2 = Node(2, 'B', 11.0, 21.0)\ntopo = Topology(nodes=[n1, n2])\n# Add links, compute metrics, visualize, etc.\n```\n\n---\n\n## \ud83d\udee0\ufe0f Development\n\nSee [`CONTRIBUTING.md`](CONTRIBUTING.md) for development guidelines, commit message rules, and pre-commit setup.\n\n---\n\n## \ud83d\udcc4 License\n\nMIT \u2014 see [`LICENSE`](LICENSE) for details.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A compact Python library for modeling, analyzing, and visualizing optical network topologies.",
    "version": "0.7.0",
    "project_urls": {
        "Documentation": "https://topolib.readthedocs.io/",
        "Homepage": "https://gitlab.com/DaniloBorquez/topolib",
        "Repository": "https://gitlab.com/DaniloBorquez/topolib"
    },
    "split_keywords": [
        "network",
        " topology",
        " optical",
        " analysis",
        " visualization"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d1104942350e1fdefcb36c5aee1bc98f2ec8ef168dd727d131b5905b14143a7a",
                "md5": "ddab050343ee3b2e4cdd0280aefc0542",
                "sha256": "3f50ca95843900ee1aefe84a941ab22cc6b172e67739bc7e6170294251f4b467"
            },
            "downloads": -1,
            "filename": "topolib-0.7.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "ddab050343ee3b2e4cdd0280aefc0542",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 88533,
            "upload_time": "2025-10-22T16:24:26",
            "upload_time_iso_8601": "2025-10-22T16:24:26.279850Z",
            "url": "https://files.pythonhosted.org/packages/d1/10/4942350e1fdefcb36c5aee1bc98f2ec8ef168dd727d131b5905b14143a7a/topolib-0.7.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d44b910d04be2a00a03ad44e1bb1d1bf947c9f7f76a42482e25e88e3a5b12a83",
                "md5": "9e1bbdce2eb0aae51d4ac41f702a2c09",
                "sha256": "c56f86b5bbf3e4b383519be5666e68fa4af5d7eb265196a2ffb58c031d3fd75b"
            },
            "downloads": -1,
            "filename": "topolib-0.7.0.tar.gz",
            "has_sig": false,
            "md5_digest": "9e1bbdce2eb0aae51d4ac41f702a2c09",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 67814,
            "upload_time": "2025-10-22T16:24:27",
            "upload_time_iso_8601": "2025-10-22T16:24:27.206231Z",
            "url": "https://files.pythonhosted.org/packages/d4/4b/910d04be2a00a03ad44e1bb1d1bf947c9f7f76a42482e25e88e3a5b12a83/topolib-0.7.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-22 16:24:27",
    "github": false,
    "gitlab": true,
    "bitbucket": false,
    "codeberg": false,
    "gitlab_user": "DaniloBorquez",
    "gitlab_project": "topolib",
    "lcname": "topolib"
}
        
Elapsed time: 1.70848s