  A Python program has been developed which fits a published detector-response
model to SiPM charge spectra to characterise SiPMs. Spectra for SiPMs
illuminated by low intensity pulsed light with Poisson-distributed number of
photons and a time spread of order nanoseconds or less, can be analysed. The
entire charge spectra, including the intervals in-between the photoelectron
peaks, are fitted, which allows determining, in addition to the mean number of
detected photons, gain, gain spread, prompt cross-talk, pedestal, and
electronics noise, the dark-count rate as well as the probability and time
constant of after-pulses. The starting values of the fit parameters are
extracted from the charge spectra.
  The program performance has been evaluated using simulated charge spectra
with the different SiPM parameters varied in a wide range. By analysing 100
simulated spectra for every parameter set, the biases and statistical
uncertainties of the individual parameters have been determined. It is found
that the parameters are precisely determined and that the entire spectra are
well described, in most cases with a $\chi ^2$/NDF close to 1. In addition,
measured spectra for two types of SiPMs for a wide range of over-voltages have
been analysed. The program achieves mostly a good description of the spectra,
and the parameters determined agree with the values from the producers and
expectations.
  The program can be used for detailed analyses of single spectra, but, as it
is compatible with the native \texttt{Python} multiprocessing module, also for
the automatic characterisation of large samples of SiPMs.
