Anotaciones de Python 3: escriba una lista de un tipo específico (PyCharm)

Usando las anotaciones de la función de Python 3, es posible especificar el tipo de elementos contenidos en una lista homogénea (u otra colección) con el propósito de hacer sugerencias de tipo en PyCharm y otros IDEs?

Un ejemplo de código pseudo-python para una lista de int:

def my_func(l:list): pass 

Sé que es posible usar Docstring …

 def my_func(l): """ :type l: list[int] """ pass 

… pero prefiero el estilo de anotación si es posible.

    Respondiendo a mi propia pregunta; La respuesta de TLDR es No, .

    Actualización 2

    En septiembre de 2015, Python 3.5 se lanzó con soporte para sugerencias de tipo e incluye un nuevo módulo de mecanografía . Esto permite la especificación de los tipos contenidos en las colecciones. A partir de noviembre de 2015, JetBrains PyCharm 5.0 es totalmente compatible con Python 3.5 para incluir sugerencias de tipo como se ilustra a continuación.

    Completar el código de PyCharm 5.0 usando sugerencias de tipo

    Actualización 1

    A partir de mayo de 2015, PEP0484 (Sugerencias de tipo) ha sido aceptado formalmente. El borrador de la implementación también está disponible en github bajo ambv / typehinting .

    Respuesta original

    A partir de agosto de 2014, confirmé que no es posible usar anotaciones de tipo Python 3 para especificar tipos dentro de colecciones (por ejemplo, una lista de cadenas).

    El uso de cadenas de documentos con formato, como reStructuredText o Sphinx, son alternativas viables y están respaldados por varios IDE.

    También parece que Guido está reflexionando sobre la idea de extender las anotaciones de tipo en el espíritu de mypy: http://mail.python.org/pipermail/python-ideas/2014-August/028618.html

    Ahora que Python 3.5 está oficialmente publicado, se encuentra el módulo de sugerencias de tipo – typing y el “tipo” de List relevante para los contenedores generics.

    En otras palabras, ahora puedes hacer:

     from typing import List def my_func(l: List[int]): pass 

    Con el soporte de BDFL, es casi seguro ahora que Python (probablemente 3.5) proporcionará una syntax estandarizada para sugerencias de tipo a través de anotaciones de funciones.

    https://www.python.org/dev/peps/pep-0484/

    Como se menciona en el PEP, hay un comprobador de tipos experimental (tipo pylint similar, pero para tipos) llamado mypy que ya usa este estándar y no requiere ninguna nueva syntax.

    http://mypy-lang.org/

    Se han agregado comentarios de tipo desde PEP 484

     active_monitors = [] # type: List[Monitor] 

    Esto está trabajando actualmente para mí en PyCharm con Python 3.6.4

    Imagen de ejemplo en Pycharm