prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  Cannot from PIL import ImageGrab
  Does Pillow2.5.3 ImageGrab still not support other OS except windows?
  If not, why we cannot do that?
  
  ---
  
  /Library/Python/2.7/site-packages/Pillow-2.5.3-py2.7-macosx-10.9-intel.egg/PIL/**init**.py
  
  Python 2.7.5 (default, Mar  9 2014, 22:15:05)
  [GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin
  Type "help", "copyright", "credits" or "license" for more information.
  
  > > > from PIL import ImageGrab
  > > > Traceback (most recent call last):
  > > >   File "<stdin>", line 1, in <module>
  > > >   File "build/bdist.macosx-10.9-intel/egg/PIL/ImageGrab.py", line 26, in <module>
  > > > ImportError: No module named _grabscreen
  
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `PIL/ImageGrab.py`
  Content:
  ```
  1 #
  2 # The Python Imaging Library
  3 # $Id$
  4 #
  5 # screen grabber (windows only)
  6 #
  7 # History:
  8 # 2001-04-26 fl  created
  9 # 2001-09-17 fl  use builtin driver, if present
  10 # 2002-11-19 fl  added grabclipboard support
  11 #
  12 # Copyright (c) 2001-2002 by Secret Labs AB
  13 # Copyright (c) 2001-2002 by Fredrik Lundh
  14 #
  15 # See the README file for information on usage and redistribution.
  16 #
  17 
  18 from PIL import Image
  19 
  20 
  21 try:
  22     # built-in driver (1.1.3 and later)
  23     grabber = Image.core.grabscreen
  24 except AttributeError:
  25     # stand-alone driver (pil plus)
  26     import _grabscreen
  27     grabber = _grabscreen.grab
  28 
  29 
  30 def grab(bbox=None):
  31     size, data = grabber()
  32     im = Image.frombytes(
  33         "RGB", size, data,
  34         # RGB, 32-bit line padding, origo in lower left corner
  35         "raw", "BGR", (size[0]*3 + 3) & -4, -1
  36         )
  37     if bbox:
  38         im = im.crop(bbox)
  39     return im
  40 
  41 
  42 def grabclipboard():
  43     debug = 0 # temporary interface
  44     data = Image.core.grabclipboard(debug)
  45     if isinstance(data, bytes):
  46         from PIL import BmpImagePlugin
  47         import io
  48         return BmpImagePlugin.DibImageFile(io.BytesIO(data))
  49     return data
  50
  ```
  --- 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/PIL/ImageGrab.py b/PIL/ImageGrab.py
  --- a/PIL/ImageGrab.py
  +++ b/PIL/ImageGrab.py
  @@ -17,6 +17,9 @@
   
   from PIL import Image
   
  +import sys
  +if sys.platform != "win32":
  +    raise ImportError("ImageGrab is Windows only")
   
   try:
       # built-in driver (1.1.3 and later)
  @@ -40,7 +43,7 @@
   
   
   def grabclipboard():
  -    debug = 0 # temporary interface
  +    debug = 0  # temporary interface
       data = Image.core.grabclipboard(debug)
       if isinstance(data, bytes):
           from PIL import BmpImagePlugin
  
verification_info: {"golden_diff": "diff --git a/PIL/ImageGrab.py b/PIL/ImageGrab.py\n--- a/PIL/ImageGrab.py\n+++ b/PIL/ImageGrab.py\n@@ -17,6 +17,9 @@\n \n from PIL import Image\n \n+import sys\n+if sys.platform != \"win32\":\n+    raise ImportError(\"ImageGrab is Windows only\")\n \n try:\n     # built-in driver (1.1.3 and later)\n@@ -40,7 +43,7 @@\n \n \n def grabclipboard():\n-    debug = 0 # temporary interface\n+    debug = 0  # temporary interface\n     data = Image.core.grabclipboard(debug)\n     if isinstance(data, bytes):\n         from PIL import BmpImagePlugin\n", "issue": "Cannot from PIL import ImageGrab\nDoes Pillow2.5.3 ImageGrab still not support other OS except windows?\nIf not, why we cannot do that?\n\n---\n\n/Library/Python/2.7/site-packages/Pillow-2.5.3-py2.7-macosx-10.9-intel.egg/PIL/**init**.py\n\nPython 2.7.5 (default, Mar  9 2014, 22:15:05)\n[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin\nType \"help\", \"copyright\", \"credits\" or \"license\" for more information.\n\n> > > from PIL import ImageGrab\n> > > Traceback (most recent call last):\n> > >   File \"<stdin>\", line 1, in <module>\n> > >   File \"build/bdist.macosx-10.9-intel/egg/PIL/ImageGrab.py\", line 26, in <module>\n> > > ImportError: No module named _grabscreen\n\n", "before_files": [{"content": "#\n# The Python Imaging Library\n# $Id$\n#\n# screen grabber (windows only)\n#\n# History:\n# 2001-04-26 fl  created\n# 2001-09-17 fl  use builtin driver, if present\n# 2002-11-19 fl  added grabclipboard support\n#\n# Copyright (c) 2001-2002 by Secret Labs AB\n# Copyright (c) 2001-2002 by Fredrik Lundh\n#\n# See the README file for information on usage and redistribution.\n#\n\nfrom PIL import Image\n\n\ntry:\n    # built-in driver (1.1.3 and later)\n    grabber = Image.core.grabscreen\nexcept AttributeError:\n    # stand-alone driver (pil plus)\n    import _grabscreen\n    grabber = _grabscreen.grab\n\n\ndef grab(bbox=None):\n    size, data = grabber()\n    im = Image.frombytes(\n        \"RGB\", size, data,\n        # RGB, 32-bit line padding, origo in lower left corner\n        \"raw\", \"BGR\", (size[0]*3 + 3) & -4, -1\n        )\n    if bbox:\n        im = im.crop(bbox)\n    return im\n\n\ndef grabclipboard():\n    debug = 0 # temporary interface\n    data = Image.core.grabclipboard(debug)\n    if isinstance(data, bytes):\n        from PIL import BmpImagePlugin\n        import io\n        return BmpImagePlugin.DibImageFile(io.BytesIO(data))\n    return data\n", "path": "PIL/ImageGrab.py"}], "after_files": [{"content": "#\n# The Python Imaging Library\n# $Id$\n#\n# screen grabber (windows only)\n#\n# History:\n# 2001-04-26 fl  created\n# 2001-09-17 fl  use builtin driver, if present\n# 2002-11-19 fl  added grabclipboard support\n#\n# Copyright (c) 2001-2002 by Secret Labs AB\n# Copyright (c) 2001-2002 by Fredrik Lundh\n#\n# See the README file for information on usage and redistribution.\n#\n\nfrom PIL import Image\n\nimport sys\nif sys.platform != \"win32\":\n    raise ImportError(\"ImageGrab is Windows only\")\n\ntry:\n    # built-in driver (1.1.3 and later)\n    grabber = Image.core.grabscreen\nexcept AttributeError:\n    # stand-alone driver (pil plus)\n    import _grabscreen\n    grabber = _grabscreen.grab\n\n\ndef grab(bbox=None):\n    size, data = grabber()\n    im = Image.frombytes(\n        \"RGB\", size, data,\n        # RGB, 32-bit line padding, origo in lower left corner\n        \"raw\", \"BGR\", (size[0]*3 + 3) & -4, -1\n        )\n    if bbox:\n        im = im.crop(bbox)\n    return im\n\n\ndef grabclipboard():\n    debug = 0  # temporary interface\n    data = Image.core.grabclipboard(debug)\n    if isinstance(data, bytes):\n        from PIL import BmpImagePlugin\n        import io\n        return BmpImagePlugin.DibImageFile(io.BytesIO(data))\n    return data\n", "path": "PIL/ImageGrab.py"}]}