code: def get_rates(self, mmin, mmax=np.inf):
          
          nsrcs = self.number_sources()
          for iloc, source in enumerate(self.source_model):
              print("Source Number %s of %s, Name = %s, Typology = %s" % (
                  iloc + 1,
                  nsrcs,
                  source.name,
                  source.__class__.__name__))
              if isinstance(source, CharacteristicFaultSource):
                  self._get_fault_rates(source, mmin, mmax)
              elif isinstance(source, ComplexFaultSource):
                  self._get_fault_rates(source, mmin, mmax)
              elif isinstance(source, SimpleFaultSource):
                  self._get_fault_rates(source, mmin, mmax)
              elif isinstance(source, AreaSource):
                  self._get_area_rates(source, mmin, mmax)
              elif isinstance(source, PointSource):
                  self._get_point_rates(source, mmin, mmax)
              else:
                  print("Source type %s not recognised - skipping!" % source)
                  continue
docs: Returns the cumulative rates greater than Mmin
  
          :param float mmin:
              Minimum magnitude