私はkwargsから使用して外側の関数OWSLib
でwms130.getfeatureinfo
、持っている:さらにkwargsを渡すには?
def getfeatureinfo(self, layers=None,
...
method='Get',
timeout=None,
**kwargs
):
を、私は内側の機能wms130.__build_getmap_request
にkwargsからの使用を持っている:
...
request['transparent'] = str(transparent).upper()
request['bgcolor'] = '0x' + bgcolor[1:7]
request['exceptions'] = str(exceptions)
if time is not None:
request['time'] = str(time)
if elevation is not None:
request['elevation'] = str(elevation)
# any other specified dimension, prefixed with "dim_"
for k, v in six.iteritems(dimensions):
request['dim_' + k] = str(v)
if kwargs:
for kw in kwargs:
request[kw]=kwargs[kw]
return request
どうやら、作者の意図は入れていましたすべてのキーワード引数をそのままHTTPクエリのパラメータに変換します。
残念ながら、私は外側の関数に自分kwargを通過するとき、それは値
{'MAXCC': '100'}
を有しているが、この内符号に到達したとき、それは値
{'kwargs': {'MAXCC': '100'}}
すなわち余分なレベルを追加しました。内部機能は
# GetMap-Request
request = self.__build_getmap_request(
layers=layers,
styles=styles,
srs=srs,
bbox=bbox,
dimensions=dimensions,
elevation=elevation,
format=format,
size=size,
time=time,
transparent=transparent,
bgcolor=bgcolor,
exceptions=exceptions,
kwargs=kwargs)
即ち外kwargsからは、名前kwargs
持つ単一キーワードとして引数にラップされると呼び出されるためです。それはOWSLibのバグであると意図が拡大kwargsからを入れていたどのように可能性の高い
1):
質問は二重のでしょうか? (単一の既知のエントリで辞書を繰り返し処理するためにループを追加する必要がないため、99%と言います)
2)kwargsが単一エントリではなくkwargsとして渡されるようにPythonの内部関数を呼び出す方法?
ので、これはあなたのコードが、モジュールOWSlibではないでしょうか?私ははいと言うでしょう、これは彼らの誤りのように思われますが、おそらく行動の理由があります。 – Stael
追加の引数を追加すると、 'kwargs'が明示的なHTTP引数として表示されるため、sentinel hub web APIがクラッシュします。したがって、彼らには1%の理由があります。 – Dims