Q:

await asyncio.wait(coroutines) invalid syntax

I have a python program that uses asyncio and await modules. This is an example program that I have taken from 
here. 
import asyncio
import os
import urllib.request
import await

@asyncio.coroutine
def download_coroutine(url):
    """
    A coroutine to download the specified url
    """
    request = urllib.request.urlopen(url)
    filename = os.path.basename(url)

    with open(filename, 'wb') as file_handle:
        while True:
            chunk = request.read(1024)
            if not chunk:
                break
            file_handle.write(chunk)
    msg = 'Finished downloading {filename}'.format(filename=filename)
    return msg

@asyncio.coroutine
def main(urls):
    """
    Creates a group of coroutines and waits for them to finish
    """
    coroutines = [download_coroutine(url) for url in urls]
    completed, pending = await asyncio.wait(coroutines)
    for item in completed:
        print(item.result())

if __name__ == '__main__':
    urls = ["http://www.irs.gov/pub/irs-pdf/f1040.pdf",
            "http://www.irs.gov/pub/irs-pdf/f1040a.pdf",
            "http://www.irs.gov/pub/irs-pdf/f1040ez.pdf",
            "http://www.irs.gov/pub/irs-pdf/f1040es.pdf",
            "http://www.irs.gov/pub/irs-pdf/f1040sb.pdf"]

    event_loop = asyncio.get_event_loop()
    try:
        event_loop.run_until_complete(main(urls))
    finally:
        event_loop.close()

I am using python 3.5.1.
C:\Anaconda3\python.exe "C:\Users\XXXXXXS\AppData\Roaming\JetBrains\PyCharm Community Edition 2016.1\helpers\pydev\pydevconsole.py" 49950 49951
Python 3.5.1 |Anaconda 2.4.0 (64-bit)| (default, Jun 15 2016, 15:29:36) [MSC v.1900 64 bit (AMD64)]
Type "copyright", "credits" or "license" for more information.

When I try to run it I get the following error.
  File "C:/Cubic/playpen/python/concepts/advanced/coroutines.py", line 29
    completed, pending = await asyncio.wait(coroutines)
                                     ^
SyntaxError: invalid syntax

I have both asyncio and await installed.
I have tried the same thing and I don't get any syntax error either.
C:\playpen\python>python
Python 3.5.1 |Anaconda 2.4.0 (64-bit)| (default, Jun 15 2016, 15:29:36) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> async def foo():
...   await bar
...

A:

await will raise a SyntaxError when used anywhere other than inside of a function defined using the async keyword, regardless of whether or not it has been made a coroutine using the @asyncio.coroutine decorator.
import asyncio

async def test():
    pass

async def foo():
    await test()  # No exception raised.

@asyncio.coroutine
def bar():
    await test()  # Exception raised.

