PATHは通っているけど、インテリセンスが表示されなくて結局コードを見に行っている人の助けになれば。
はじめに
azure devopsの環境作ってrest apiをいろいろ試してた時、インテリセンスがまともに表示されなくてとても開発しにくかったです。
こうすればインテリセンスが表示されるようになったので情報として残しておきます。
インテリセンスが表示されていなかった理由
以下のようなコードがあったとします。
credentials = BasicAuthentication('', personal_access_token) connection = Connection(base_url=organization_url, creds=credentials) # GitClient gc = connection.clients_v6_0.get_git_client() gc.
最後のgc.
まで入力したとき、またはCtrl + Space押下したときにインテリセンスが表示されることが期待値ですが、ちゃんと表示されません。
↓のようなよくわからん候補が表示されます。
理由は単純でした。
呼び出しているメソッド側の説明を見てみます。
これがすべてですね。
(method) get_git_client() -> Any
言われたら(言われなくても)そりゃそうだというオチでした。
pythonの強みでもあり弱点でもある部分でしょうか。
どうする?
原因はわかったので、やることは単純です。
型解決してあげればよいだけでした。
次のようにコードを少し書き換えるだけで万事解決しました。
修正後コード
credentials = BasicAuthentication('', personal_access_token) connection = Connection(base_url=organization_url, creds=credentials) # GitClient gc : git.git_client.GitClient = connection.clients_v6_0.get_git_client()
受けたい変数に型を明示します。
結果、ちゃんと候補が出るようになります。
for 文とかでも以下のように書けば大丈夫でした。(もっとスマートな書き方はありそうですが、これしか見つけてません)
for item in get_some_any_list() : item : SomeType
おしまい
結局戻りの型は何かを調べるためにひと潜りする必要はあるのですが、その後の変数の利用度合いと比較したら十分型明示のメリットはありますね。
何よりもストレスレスなのがうれしいです。