prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  Typing: ManualScheduleTrigger `points` should accept `int`
  
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `pytorch_pfn_extras/training/triggers/manual_schedule_trigger.py`
  Content:
  ```
  1 # mypy: ignore-errors
  2 
  3 from typing import List, Union, TYPE_CHECKING
  4 
  5 from pytorch_pfn_extras.training import trigger
  6 
  7 
  8 if TYPE_CHECKING:
  9     from pytorch_pfn_extras.training.manager import _BaseExtensionsManager
  10     from pytorch_pfn_extras.training._trigger_util import UnitLiteral
  11 
  12 
  13 class ManualScheduleTrigger(trigger.Trigger):
  14 
  15     """Trigger invoked at specified point(s) of iterations or epochs.
  16 
  17     This trigger accepts iterations or epochs indicated by given point(s).
  18     There are two ways to specify the point(s): iteration and epoch.
  19     ``iteration`` means the number of updates, while ``epoch`` means the number
  20     of sweeps over the training dataset. Fractional values are allowed
  21     if the point is a number of epochs; the trigger uses the ``iteration``
  22     and ``epoch_detail`` attributes defined by the manager.
  23 
  24     Args:
  25         points (int, float, or list of int or float): time of the trigger.
  26             Must be an integer or list of integer if unit is ``'iteration'``.
  27         unit (str): Unit of the time specified by ``points``. It must be
  28             either ``'iteration'`` or ``'epoch'``.
  29 
  30     """
  31 
  32     def __init__(self, points: Union[float, List[float]], unit: 'UnitLiteral'):
  33         if unit not in ('epoch', 'iteration'):
  34             raise ValueError(
  35                 'Trigger unit must be either \'epoch\' or \'iteration\'.')
  36 
  37         self.points = (points if isinstance(points, list) else [points])
  38         self.unit = unit
  39 
  40     def __call__(self, manager: '_BaseExtensionsManager') -> bool:
  41         """Decides whether the extension should be called on this iteration.
  42 
  43         Args:
  44             manager (~pytorch_pfn_extras.training.ExtensionsManager):
  45                 Manager object that this trigger is associated with.
  46                 The iteration information in this manager is used to
  47                 determine if the trigger should fire.
  48 
  49         Returns:
  50             bool: True if the corresponding extension should be invoked in this
  51             iteration.
  52 
  53         """
  54         fire = self.may_fire(manager.iteration, manager._iters_per_epoch)
  55         return fire
  56 
  57     def may_fire(self, iteration: int, epoch_length: int) -> bool:
  58         if self.unit == 'epoch':
  59             fire = any(
  60                 int(p * epoch_length) == iteration for p in self.points)
  61         else:
  62             fire = any(p == iteration for p in self.points)
  63         return fire
  64
  ```
  --- END FILES ---
  
  Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.
  
  Here is an example:
  
  ```diff
  diff --git a/examples/server_async.py b/examples/server_async.py
  --- a/examples/server_async.py
  +++ b/examples/server_async.py
  @@ -313,4 +313,4 @@
   
   
   if __name__ == "__main__":
  -    asyncio.run(run_async_server("."), debug=True)
  +    asyncio.run(run_async_server(), debug=True)
  diff --git a/examples/server_sync.py b/examples/server_sync.py
  --- a/examples/server_sync.py
  +++ b/examples/server_sync.py
  @@ -313,5 +313,5 @@
   
   
   if __name__ == "__main__":
  -    server = run_sync_server(".")
  +    server = run_sync_server()
       server.shutdown()
  
  ```
  
golden_diff: diff --git a/pytorch_pfn_extras/training/triggers/manual_schedule_trigger.py b/pytorch_pfn_extras/training/triggers/manual_schedule_trigger.py
  --- a/pytorch_pfn_extras/training/triggers/manual_schedule_trigger.py
  +++ b/pytorch_pfn_extras/training/triggers/manual_schedule_trigger.py
  @@ -1,6 +1,6 @@
   # mypy: ignore-errors
   
  -from typing import List, Union, TYPE_CHECKING
  +from typing import Sequence, Union, TYPE_CHECKING
   
   from pytorch_pfn_extras.training import trigger
   
  @@ -29,7 +29,7 @@
   
       """
   
  -    def __init__(self, points: Union[float, List[float]], unit: 'UnitLiteral'):
  +    def __init__(self, points: Union[float, Sequence[float]], unit: 'UnitLiteral'):
           if unit not in ('epoch', 'iteration'):
               raise ValueError(
                   'Trigger unit must be either \'epoch\' or \'iteration\'.')
  
verification_info: {"golden_diff": "diff --git a/pytorch_pfn_extras/training/triggers/manual_schedule_trigger.py b/pytorch_pfn_extras/training/triggers/manual_schedule_trigger.py\n--- a/pytorch_pfn_extras/training/triggers/manual_schedule_trigger.py\n+++ b/pytorch_pfn_extras/training/triggers/manual_schedule_trigger.py\n@@ -1,6 +1,6 @@\n # mypy: ignore-errors\n \n-from typing import List, Union, TYPE_CHECKING\n+from typing import Sequence, Union, TYPE_CHECKING\n \n from pytorch_pfn_extras.training import trigger\n \n@@ -29,7 +29,7 @@\n \n     \"\"\"\n \n-    def __init__(self, points: Union[float, List[float]], unit: 'UnitLiteral'):\n+    def __init__(self, points: Union[float, Sequence[float]], unit: 'UnitLiteral'):\n         if unit not in ('epoch', 'iteration'):\n             raise ValueError(\n                 'Trigger unit must be either \\'epoch\\' or \\'iteration\\'.')\n", "issue": "Typing: ManualScheduleTrigger `points` should accept `int`\n\n", "before_files": [{"content": "# mypy: ignore-errors\n\nfrom typing import List, Union, TYPE_CHECKING\n\nfrom pytorch_pfn_extras.training import trigger\n\n\nif TYPE_CHECKING:\n    from pytorch_pfn_extras.training.manager import _BaseExtensionsManager\n    from pytorch_pfn_extras.training._trigger_util import UnitLiteral\n\n\nclass ManualScheduleTrigger(trigger.Trigger):\n\n    \"\"\"Trigger invoked at specified point(s) of iterations or epochs.\n\n    This trigger accepts iterations or epochs indicated by given point(s).\n    There are two ways to specify the point(s): iteration and epoch.\n    ``iteration`` means the number of updates, while ``epoch`` means the number\n    of sweeps over the training dataset. Fractional values are allowed\n    if the point is a number of epochs; the trigger uses the ``iteration``\n    and ``epoch_detail`` attributes defined by the manager.\n\n    Args:\n        points (int, float, or list of int or float): time of the trigger.\n            Must be an integer or list of integer if unit is ``'iteration'``.\n        unit (str): Unit of the time specified by ``points``. It must be\n            either ``'iteration'`` or ``'epoch'``.\n\n    \"\"\"\n\n    def __init__(self, points: Union[float, List[float]], unit: 'UnitLiteral'):\n        if unit not in ('epoch', 'iteration'):\n            raise ValueError(\n                'Trigger unit must be either \\'epoch\\' or \\'iteration\\'.')\n\n        self.points = (points if isinstance(points, list) else [points])\n        self.unit = unit\n\n    def __call__(self, manager: '_BaseExtensionsManager') -> bool:\n        \"\"\"Decides whether the extension should be called on this iteration.\n\n        Args:\n            manager (~pytorch_pfn_extras.training.ExtensionsManager):\n                Manager object that this trigger is associated with.\n                The iteration information in this manager is used to\n                determine if the trigger should fire.\n\n        Returns:\n            bool: True if the corresponding extension should be invoked in this\n            iteration.\n\n        \"\"\"\n        fire = self.may_fire(manager.iteration, manager._iters_per_epoch)\n        return fire\n\n    def may_fire(self, iteration: int, epoch_length: int) -> bool:\n        if self.unit == 'epoch':\n            fire = any(\n                int(p * epoch_length) == iteration for p in self.points)\n        else:\n            fire = any(p == iteration for p in self.points)\n        return fire\n", "path": "pytorch_pfn_extras/training/triggers/manual_schedule_trigger.py"}], "after_files": [{"content": "# mypy: ignore-errors\n\nfrom typing import Sequence, Union, TYPE_CHECKING\n\nfrom pytorch_pfn_extras.training import trigger\n\n\nif TYPE_CHECKING:\n    from pytorch_pfn_extras.training.manager import _BaseExtensionsManager\n    from pytorch_pfn_extras.training._trigger_util import UnitLiteral\n\n\nclass ManualScheduleTrigger(trigger.Trigger):\n\n    \"\"\"Trigger invoked at specified point(s) of iterations or epochs.\n\n    This trigger accepts iterations or epochs indicated by given point(s).\n    There are two ways to specify the point(s): iteration and epoch.\n    ``iteration`` means the number of updates, while ``epoch`` means the number\n    of sweeps over the training dataset. Fractional values are allowed\n    if the point is a number of epochs; the trigger uses the ``iteration``\n    and ``epoch_detail`` attributes defined by the manager.\n\n    Args:\n        points (int, float, or list of int or float): time of the trigger.\n            Must be an integer or list of integer if unit is ``'iteration'``.\n        unit (str): Unit of the time specified by ``points``. It must be\n            either ``'iteration'`` or ``'epoch'``.\n\n    \"\"\"\n\n    def __init__(self, points: Union[float, Sequence[float]], unit: 'UnitLiteral'):\n        if unit not in ('epoch', 'iteration'):\n            raise ValueError(\n                'Trigger unit must be either \\'epoch\\' or \\'iteration\\'.')\n\n        self.points = (points if isinstance(points, list) else [points])\n        self.unit = unit\n\n    def __call__(self, manager: '_BaseExtensionsManager') -> bool:\n        \"\"\"Decides whether the extension should be called on this iteration.\n\n        Args:\n            manager (~pytorch_pfn_extras.training.ExtensionsManager):\n                Manager object that this trigger is associated with.\n                The iteration information in this manager is used to\n                determine if the trigger should fire.\n\n        Returns:\n            bool: True if the corresponding extension should be invoked in this\n            iteration.\n\n        \"\"\"\n        fire = self.may_fire(manager.iteration, manager._iters_per_epoch)\n        return fire\n\n    def may_fire(self, iteration: int, epoch_length: int) -> bool:\n        if self.unit == 'epoch':\n            fire = any(\n                int(p * epoch_length) == iteration for p in self.points)\n        else:\n            fire = any(p == iteration for p in self.points)\n        return fire\n", "path": "pytorch_pfn_extras/training/triggers/manual_schedule_trigger.py"}]}