code: def pulse_magnitude(time, magnitude, start, repeat_time=0):
      
      t = time()
      small = 1e-6  # What is considered zero according to Vensim Help
      if repeat_time <= small:
          if abs(t - start) < time.step():
              return magnitude * time.step()
          else:
              return 0
      else:
          if abs((t - start) % repeat_time) < time.step():
              return magnitude * time.step()
          else:
              return 0
docs: Implements xmile's PULSE function
      
      PULSE:             Generate a one-DT wide pulse at the given time
         Parameters:     2 or 3:  (magnitude, first time[, interval])
                         Without interval or when interval = 0, the PULSE is generated only once
         Example:        PULSE(20, 12, 5) generates a pulse value of 20/DT at time 12, 17, 22, etc.
      
      In rage [-inf, start) returns 0
      In range [start + n * repeat_time, start + n * repeat_time + dt) return magnitude/dt
      In rage [start + n * repeat_time + dt, start + (n + 1) * repeat_time) return 0