  The propagation of pulses in optical fibers is described by the generalized
nonlinear Schrodinger equation (GNLSE), which takes into account the fiber
losses, nonlinear effects, and higher-order chromatic dispersion. The GNLSE is
a partial differential equation, whose order depends on the accounted nonlinear
and dispersion effects. We present gnlse-python, a nonlinear optics modeling
toolbox that contains a rich set of components and modules to solve the GNLSE
using the split-step Fourier transform method (SSFM). The numerical solver is
freely available, implemented in Python language, and includes a number of
optical fiber analysis tools. Code and data are available at
https://github.com/WUST-FOG/gnlse-python.
