Понимание подсказки предполагаемого типа Pycharm

Я хотел бы понять, что происходит в PyCharm с типом Inferred в окне Quick Documentation.

Используя приведенную ниже функцию, я вижу в Quick Documentation следующее: Окно быстрого редактирования

Аргумент host отображается как Optional[str], как я и ожидал, но auth и version показывают только str | None. Технически (я полагаю) оба правильны, но почему между этими похожими аргументами такое несоответствие?

Вы заметите, что я попытался изменить подсказку типа для версии, просто чтобы посмотреть, имеет ли это какое-то значение.

Я что-то упустил в том, как работает подсказка типов?
Можно ли каким-то образом заставить Optional[str] отображаться для auth и version ?

def getBaseUrl(service, host=None, auth=None, version=None):
    """
    Defaulted arguments will automatically fetch the values from config 

    :param str service: wms, wfs
    :param str or None host:    [internal | external | {user submitted host}] -
                                internal and external will use the config file to automatically determine
                                anything else will be assumed as a server address including possible port.
    :param str or None auth:    basic, digest, oauth 
                                anything else will raise exception
    :param version: eg wms_v1, wfs_v1
    :type version:  str or None
    :return: base url for use in the gis Webservice
    """
    assert service.lower() == 'wms' or service.lower() == 'wfs', "Unsupported service: %s" % service

    internalhost = cfg.get('GIS', 'internalhost')
    externalhost = cfg.get('GIS', 'externalhost')

    if host is None:
        host = cfg.get('GIS', 'host')
    if version is None:
        version = cfg.get(service, 'version')

    if host == "internal":
        host = "{host}".format(host=internalhost)

    elif host == 'external':
        host = "{host}".format(host=externalhost)

    else:
        host = "{host}".format(host=host)

    return buildBaseUrl(host=host, version=version, auth=auth, service=service)

person Marcel Wilson    schedule 09.06.2016    source источник
comment
Я заполнил вопрос youtrack.jetbrains.com/issue/PY-19859   -  person user2235698    schedule 17.06.2016


Ответы (1)


Похоже, это действительно ошибка с Pycharm. Будет исправлено в версии 2016.2.

https://youtrack.jetbrains.com/issue/PY-17705

person Marcel Wilson    schedule 24.06.2016