class ManualScheduleTrigger(object):

    """Trigger invoked when specific value reaches the indicated values.

    This trigger accepts iterations indicated by given periods. There are two
    ways to specify the preriods: iterations and epochs. `Iteration` means
    the number of updates, while `epoch` means the number of sweeps over the
    training dataset. Fractional values are allowed if the period is a
    number of epochs; the trigger uses the `iteration` and `epoch_detail`
    attributes defined by the updater.

    Args:
        periods (int or float or list of int or float): Length of the interval.
            Must be an integer or list of integer if unit is ``'iteration'``.
        unit (str): Unit of the length specified by ``period``. It must be
            either ``'iteration'`` or ``'epoch'``.

    """

    def __init__(self, period, unit):
        self.period = period if isinstance(period, list) else [period]
        assert unit == 'epoch' or unit == 'iteration'
        self.unit = unit
        self.count = [0 for _ in range(len(self.period))]
        self.valid = [True for _ in range(len(self.period))]

    def __call__(self, trainer):
        """Decides whether the extension should be called on this iteration.

        Args:
            trainer (Trainer): Trainer object that this trigger is associated
                with. The updater associated with this trainer is used to
                determine if the trigger should fire.

        Returns:
            bool: True if the corresponding extension should be invoked in this
                iteration.

        """
        updater = trainer.updater
        if self.unit == 'epoch':
            prev = self.count
            self.count = [updater.epoch_detail // p for p in self.period]
            flag = [p != c for p, c in zip(prev, self.count)]
            ans = any([f and v for f, v in zip(flag, self.valid)])
            self.valid = [not f and v for f, v in zip(flag, self.valid)]
            return ans
        else:
            iteration = updater.iteration
            return iteration > 0 and iteration in self.period

@@ -58,20 +58,18 @@
 ked 
-when
+at
  specifi
 c va
@@ -68,43 +68,42 @@
 cifi
-c value reaches the indicated value
+ed point(s) of iterations or epoch
 s.%0A%0A
@@ -138,16 +138,26 @@
 rations 
+or epochs 
 indicate
@@ -172,15 +172,20 @@
 en p
-eriods.
+oint(s).%0A   
  The
@@ -194,20 +194,16 @@
  are two
-%0A   
  ways to
@@ -220,15 +220,15 @@
 he p
-reriods
+oint(s)
 : it
@@ -234,17 +234,16 @@
 teration
-s
  and epo
@@ -248,13 +248,16 @@
 poch
-s
 .
+%0A   
  %60
-I
+i
 tera
@@ -267,20 +267,16 @@
 n%60 means
-%0A   
  the num
@@ -317,24 +317,28 @@
 s the number
+%0A   
  of sweeps o
@@ -344,20 +344,16 @@
 over the
-%0A   
  trainin
@@ -392,16 +392,20 @@
  allowed
+%0A   
  if the 
@@ -409,22 +409,17 @@
 he p
-eriod
+oint
  is a
-%0A   
  num
@@ -465,16 +465,20 @@
 eration%60
+%0A   
  and %60ep
@@ -488,20 +488,16 @@
 _detail%60
-%0A   
  attribu
@@ -548,28 +548,26 @@
    p
-eriod
+oint
 s (int
- or
+,
  float
+,
  or 
@@ -593,22 +593,20 @@
 t): 
-Length
+time
  of the 
 inte
@@ -605,16 +605,15 @@
 the 
-interval
+trigger
 .%0A  
@@ -724,14 +724,12 @@
 the 
-length
+time
  spe
@@ -741,21 +741,21 @@
 d by %60%60p
-eriod
+oints
 %60%60. It m
@@ -846,21 +846,21 @@
 (self, p
-eriod
+oints
 , unit):
@@ -878,22 +878,22 @@
 lf.p
-eriod = period
+oints = points
  if 
@@ -904,21 +904,21 @@
 stance(p
-eriod
+oints
 , list) 
@@ -924,21 +924,21 @@
  else %5Bp
-eriod
+oints
 %5D%0A      
@@ -1055,29 +1055,29 @@
 e(len(self.p
-eriod
+oints
 ))%5D%0A        
@@ -1120,21 +1120,21 @@
 n(self.p
-eriod
+oints
 ))%5D%0A%0A   
@@ -1763,21 +1763,21 @@
 n self.p
-eriod
+oints
 %5D%0A      
@@ -2111,10 +2111,10 @@
 lf.p
-eriod
+oints
 %0A

fix the name of parameters and docstring