2016-06-09 6 views
1

Ich möchte verstehen, was in PyCharm mit abgeleiteten Typ im Fenster Quick Documentation vorgeht.Verständnis von Pycharm abgeleitete Typhinweis

die Funktion unter Verwendung, sehe ich folgende in Schnell Dokumentation: Quick Edit Window

Argument host als Optional[str] erscheint, wie ich es zu erwarten, aber auth und version zeigen nur str | None. Technisch (glaube ich) sind beide richtig, aber warum die Diskrepanz zwischen diesen ähnlichen Argumenten?

Sie werden feststellen, dass ich versucht habe, den Typhinweis für die Version zu ändern, nur um zu sehen, ob das einen Unterschied macht.

Fehle ich etwas darüber, wie Typ Hinting funktioniert?
Gibt es eine Möglichkeit, Optional[str] für auth und version anzuzeigen?

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) 
+0

ich das Thema gefüllt https://youtrack.jetbrains.com/issue/PY-19859 – user2235698

Antwort