52747


# 環境

  * Python3.7

# やりたいこと

IPython上でコードを実行したとき、DeprecationWarningを表示するようにしたいです。  
実行時、警告に気づくようにするためです。  
たとえば、以下の`get_history`メソッドを実行したときです。

[code]

    class SampleApi:
        def get_history(self, history_id):
            warnings.warn("deprecated", DeprecationWarning)
            return history_id
    
[/code]

どのような操作を行えば、IPythonで実行したときに警告が表示されるようになりますか？  
私の環境では、DeprecationWarningが表示されませんでした。


CC BY-SA 4.0
2019-02-13T03:00:12.867
52745
2019-02-13T04:15:52.720
19524
question
python ipython
IPythonで実行したコードに対して、DeprecationWarningを表示する方法


以下の記事は逆に警告を表示させない方法の質問ですが、自己解決していて、  
かつ回答の中に警告の出し方を変える方法の補足があります。  
[Hide all warnings in ipython](https://stackoverflow.com/q/9031783/9014308)  
質問：

>
> 私はipythonセッションのスクリーンキャストを作成する必要があります、そして混乱する視聴者を避けるために、私は異なるパッケージからの`warnings.warn`呼び出しによって発せられるすべての警告を無効にしたいです。
> このような警告をすべて自動的に無効にするように`ipythonrc`ファイルを構成する方法はありますか？

回答：

> 私は結局それを考え出した。
[code]

    import warnings
    warnings.filterwarnings('ignore')
    
[/code]

> `~/.ipython/profile_default/startup/disable-warnings.py`の中。  
>  他の誰かが同じ問題に遭遇した場合に備えて、私はこの質問と回答を残しています。  
>  多くの場合、一度警告を表示すると便利です。  
>  これは次のように設定できます。
[code]

    warnings.filterwarnings(action='once')
    
[/code]

* * *

仕様の詳細は以下にあって、デフォルトでは`DeprecationWarning`は`ignore`になっているようです。  
下記仕様に記載されたいずれかの方法で`DeprecationWarning`を有効にすれば良いと思われます。

[warnings --- 警告の制御](https://docs.python.org/ja/3/library/warnings.html)  
[警告フィルタ](https://docs.python.org/ja/3/library/warnings.html#the-warnings-
filter)  
[Default Warning
Filter](https://docs.python.org/ja/3/library/warnings.html#default-warning-
filter)

> デフォルトでは、Pythonはいくつかの警告フィルタをインストールします。  
>
> これらは、`-W`コマンドラインオプション、`PYTHONWARNINGS`環境変数、および`filterwarnings()`への呼び出しによって上書きされます。  
>  通常のリリースビルドでは、デフォルトの警告フィルタに次のエントリがあります（優先順位の高い順）。  
>  default::DeprecationWarning:__main__  
>  ignore::DeprecationWarning  
>  ignore::PendingDeprecationWarning  
>  ignore::ImportWarning  
>  ignore::ResourceWarning


CC BY-SA 4.0
2019-02-13T04:15:52.720
52747
2019-02-13T04:15:52.720
26370
52745
answer