code: def _get_point_rates(self, source, mmin, mmax=np.inf):
          
          src_mesh = Mesh.from_points_list([source.location])
          in_poly = self.limits.intersects(src_mesh)[0]
          if not in_poly:
              return
          else:
              for (mag, rate) in source.get_annual_occurrence_rates():
                  if (mag < mmin) or (mag > mmax):
                      return
                  else:
                      for (prob, depth) in source.hypocenter_distribution.data:
                          if (depth < self.upper_depth) or\
                                  (depth > self.lower_depth):
                              continue
                          else:
                              self.rates += (prob * rate)
docs: Adds the rates for a point source
  
          :param source:
              Point source as instance of :class:
              openquake.hazardlib.source.point.PointSource
          :param float mmin:
              Minimum Magnitude
          :param float mmax:
              Maximum Magnitude