Metadata-Version: 2.4
Name: gnpy
Version: 2.14.1
Home-page: https://github.com/Telecominfraproject/oopt-gnpy
Author: Telecom Infra Project
Author-email: jkt@jankundrat.com
License: BSD-3-Clause
Project-URL: Bug Tracker, https://github.com/Telecominfraproject/oopt-gnpy/issues
Project-URL: Documentation, https://gnpy.readthedocs.io/
Keywords: optics,network,fiber,communication,route,planning,optimization
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Telecommunications Industry
Classifier: License :: OSI Approved :: BSD License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Physics
Classifier: Topic :: System :: Networking
Requires-Python: >=3.8
Description-Content-Type: text/markdown; variant=GFM
License-File: LICENSE
License-File: AUTHORS.rst
Requires-Dist: matplotlib<4,>=3.7.3
Requires-Dist: networkx<4,>=3.1
Requires-Dist: numpy<2,>=1.24.4
Requires-Dist: oopt_gnpy_libyang>=0.0.14
Requires-Dist: openpyxl<4,>=3.1.5
Requires-Dist: pandas<3,>=2.0.3
Requires-Dist: pbr<7,>=6.0.0
Requires-Dist: scipy<2,>=1.10.1
Requires-Dist: tabulate<1,>=0.9.0
Requires-Dist: xlrd<3,>=2.0.1
Provides-Extra: tests
Requires-Dist: build<2,>=1.0.3; extra == "tests"
Requires-Dist: pytest<8,>=7.4.3; extra == "tests"
Requires-Dist: flake8<6,>=5.0.4; extra == "tests"
Provides-Extra: docs
Requires-Dist: alabaster<1,>=0.7.12; extra == "docs"
Requires-Dist: docutils<1,>=0.17.1; extra == "docs"
Requires-Dist: myst-parser<5,>=4.0.1; extra == "docs"
Requires-Dist: Pygments<3,>=2.11.2; extra == "docs"
Requires-Dist: rstcheck; extra == "docs"
Requires-Dist: Sphinx<9,>=8.1.3; extra == "docs"
Requires-Dist: sphinxcontrib-bibtex<3,>=2.4.1; extra == "docs"
Requires-Dist: sphinx_rtd_theme<4,>=3.0.2; extra == "docs"
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: keywords
Dynamic: license
Dynamic: license-file
Dynamic: project-url
Dynamic: requires-python

# GNPy: Optical Route Planning and DWDM Network Optimization

[![Install via pip](https://img.shields.io/pypi/v/gnpy)](https://pypi.org/project/gnpy/)
[![Python versions](https://img.shields.io/pypi/pyversions/gnpy)](https://pypi.org/project/gnpy/)
[![Documentation status](https://readthedocs.org/projects/gnpy/badge/?version=master)](http://gnpy.readthedocs.io/en/master/?badge=master)
[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/Telecominfraproject/oopt-gnpy/main.yml)](https://github.com/Telecominfraproject/oopt-gnpy/actions/workflows/main.yml)
[![Gerrit](https://img.shields.io/badge/patches-via%20Gerrit-blue)](https://review.gerrithub.io/q/project:Telecominfraproject/oopt-gnpy+is:open)
[![Contributors](https://img.shields.io/github/contributors-anon/Telecominfraproject/oopt-gnpy)](https://github.com/Telecominfraproject/oopt-gnpy/graphs/contributors)
[![Code Coverage via codecov](https://img.shields.io/codecov/c/github/Telecominfraproject/oopt-gnpy)](https://codecov.io/gh/Telecominfraproject/oopt-gnpy)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3458319.svg)](https://doi.org/10.5281/zenodo.3458319)
[![Matrix chat](https://img.shields.io/matrix/oopt-gnpy:matrix.org)](https://matrix.to/#/%23oopt-gnpy%3Amatrix.org?via=matrix.org)

GNPy is an open-source, community-developed library for building route planning and optimization tools in real-world mesh optical networks.
We are a consortium of operators, vendors, and academic researchers sponsored via the [Telecom Infra Project](http://telecominfraproject.com)'s [OOPT/PSE](https://telecominfraproject.com/open-optical-packet-transport) working group.
Together, we are building this tool for rapid development of production-grade route planning tools which is easily extensible to include custom network elements and performant to the scale of real-world mesh optical networks.

![GNPy with an OLS system](docs/images/GNPy-banner.png)

## Quick Start

Install either via [Docker](https://gnpy.readthedocs.io/en/master/install.html#using-prebuilt-docker-images), or as a [Python package](https://gnpy.readthedocs.io/en/master/install.html#using-python-on-your-computer).
Read our [documentation](https://gnpy.readthedocs.io/), learn from the demos, and [get in touch with us](https://github.com/Telecominfraproject/oopt-gnpy/discussions).

This example demonstrates how GNPy can be used to check the expected SNR at the end of the line by varying the channel input power:

![Running a simple simulation example](docs/images/gnpy-transmission-example.svg)

GNPy can do much more, including acting as a Path Computation Engine, tracking bandwidth requests, or advising the SDN controller about a best possible path through a large DWDM network.
Learn more about this [in the documentation](https://gnpy.readthedocs.io/), or give it a [try online at `gnpy.app`](https://gnpy.app/):

[![Path propagation at gnpy.app](docs/images/2022-04-12-gnpy-app.png)](https://gnpy.app/)


## Official API

For more advanced integration and programmatic interaction with GNPy, you can refer to the official API available in the [oopt-gnpy-api](https://github.com/Telecominfraproject/oopt-gnpy-api) project. This REST API allows you to control and automate simulations, integrate GNPy into SDN architectures, or develop custom tools for network planning and optimization.

You can explore this API and its features by visiting the [oopt-gnpy-api](https://github.com/Telecominfraproject/oopt-gnpy-api) repository. It provides a flexible interface to leverage the full power of GNPy in your projects.


## Project Calendar

See upcoming meetings on the [Project Calendar](https://telecominfraproject.github.io/oopt-gnpy/calendar.html). The calendar is embedded from Google Calendar and updates automatically.

