Jan Kundrát 2a07eec966 SimParams: less boilerplate
The code look as if it was trying to prevent direct instantiation of the
SimParams class. However, instance *creation* in Python is actually
handled via `__new__` which was not overridden. In addition, the
`get()` accessor was invoking `SimParams.__new__()` directly, which
meant that this class was instantiated each time it was needed.

Let's cut the boilerplate by getting rid of the extra step and just use
the regular constructor.

This patch doesn't change anything in actual observable behavior. I
still do not like this implicit singleton design pattern, but nuking
that will have to wait until some other time.

Change-Id: I3ca81bcd0042e91b4f6b7581879922611f18febe
2023-04-17 23:06:31 +02:00
2023-03-02 14:28:12 +01:00
2023-04-13 09:33:19 +02:00
2023-04-17 23:06:31 +02:00
2018-06-22 18:55:26 -04:00
2023-04-17 23:06:31 +02:00
2020-04-23 18:38:36 +02:00
2019-12-17 11:13:00 +01:00
2020-06-18 20:30:34 +02:00
2021-12-07 16:47:30 +01:00
2023-01-18 21:35:08 +01:00
2021-06-02 23:22:32 +02:00
2018-03-12 14:43:58 -04:00
2019-05-24 01:38:12 +02:00
2023-03-02 14:28:12 +01:00
2020-03-25 19:34:42 +01:00

GNPy: Optical Route Planning and DWDM Network Optimization

Install via pip Python versions Documentation status GitHub Workflow Status Gerrit Contributors Code Coverage via codecov DOI Matrix chat

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's OOPT/PSE 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

Quick Start

Install either via Docker, or as a Python package. Read our documentation, learn from the demos, and get in touch with us.

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

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, or give it a try online at gnpy.app:

Path propagation at gnpy.app

Description
No description provided
Readme BSD-3-Clause 19 MiB
Latest
2025-09-26 10:01:21 +00:00
Languages
Python 100%