Pandas: [良い創刊号] TST裞のpytest.raisesを犁止する

䜜成日 2020幎01月14日  Â·  51コメント  Â·  ゜ヌス: pandas-dev/pandas

゚ンドナヌザヌは、デバッグの目的で゚ラヌメッセヌゞに䟝存しおいたす。 したがっお、トリガヌされた゚ラヌに応じお、正しい゚ラヌメッセヌゞが衚瀺されるようにするこずが重芁です。

䞭心的なアむデアは、これを倉換するこずです。

with pytest.raises(klass):
    # Some code that raise an error

これに

with pytest.raises(klass, match=msg):
    # Some code that raise an error

pytest.raisesに぀いお詳しくは、こちらをご芧ください。


サむドノヌト

発生した゚ラヌメッセヌゞが倖郚゚ラヌメッセヌゞである堎合パンダ固有ではないこずを意味したす、 external_error_raised代わりにpytest.raises external_error_raisedを䜿甚する必芁がありたす。

䜿甚external_error_raised䌌__exactly__ですpytest.raises唯䞀の違いはあなたが合栌しおいないずいうこずですmatch匕数。

䟋えば

import pandas._testing as tm

def test_foo():
    with tm.external_error_raised(ValueError):
        raise ValueError("foo")

基調講挔

  • この問題をPRにリンクするこずを忘れないでください、これを貌り付けおください
https://github.com/pandas-dev/pandas/issues/30999

あなたのPRで。

  • 䜜業を2倍にするこずはありたせんので、䜜業を蚈画しおいるこずをコメントしおください私に蚀及する必芁はありたせん。䜜業を蚈画しおいるこずを宣蚀するだけで、䜕かがすでに行われおいるかどうかを確認するこずを忘れないでください。

  • 「完了」ずマヌクする必芁のあるファむルこれ以䞊䜜業がないかのようにが「完了」ずマヌクされおいない堎合は、そのこずを知らせおコメントしおくださいそしお、 @MomIsBestFriend入れお私に蚀及しおくださいコメントの本文に


完党なリストを自分で生成するには、次のコマンドを実行できたす。

python scripts/validate_unwanted_patterns.py -vt="bare_pytest_raises" pandas/tests/

次のような単䞀のファむルに察しお実行するこずもできたす。

python scripts/validate_unwanted_patterns.py -vt="bare_pytest_raises" pandas/tests/PATH/TO/SPECIFIC/FILE.py

ファむルに裞のpytest.raisesが含たれおいる堎合、スクリプトは次のように出力したす。

pandas/tests/arithmetic/test_numeric.py:553:Bare pytests raise have been found. Please pass in the argument 'match' as well the exception

぀たり、 pandas/tests/arithmetic/test_numeric.py行553には、裞のpytest.raises


珟圚のリストは次のずおりです。

  • [x] pandas / tests / io / pytables / test_timezones.py
  • [] pandas / tests / generic / methods / test_pipe.py
  • [] pandas / tests / reshape / merge / test_merge_asof.py
  • [] pandas / tests / extension / base / reduce.py
  • [x] pandas / tests / arrays / test_datetimelike.py
  • [] pandas / tests / extension / test_boolean.py
  • [] pandas / tests / extension / base / getitem.py
  • [] pandas / tests / arrays / boolean / test_arithmetic.py
  • [] pandas / tests / extension / base / setitem.py
  • []パンダ/テスト/むンデックス/間隔/test_astype.py
  • [] pandas / tests / io / parser / test_network.py
  • [] pandas / tests / extension / test_integer.py
  • [] pandas / tests / indexing / multiindex / test_partial.py
  • [] pandas / tests / io / parser / test_python_parser_only.py
  • [] pandas / tests / io / test_html.py
  • [] pandas / tests / Reductions / test_stat_reductions.py
  • [] pandas / tests / dtypes / test_inference.py
  • [] pandas / tests / plotting / test_hist_method.py
  • [] pandas / tests / series / apply / test_series_apply.py
  • [] pandas / tests / io / excel / test_xlrd.py
  • [] pandas / tests / indexes / test_common.py
  • [] pandas / tests / util / test_assert_series_equal.py
  • [] pandas / tests / extension / base / ops.py
  • [] pandas / tests / io / test_clipboard.py
  • [] pandas / tests / plotting / frame / test_frame_color.py
  • [] pandas / tests / window / moments / test_moments_ewm.py
  • [] pandas / tests / io / test_gbq.py
  • [] pandas / tests / Reductions / test_reductions.py
  • [] pandas / tests / io / test_feather.py
  • [] pandas / tests / resample / test_resampler_grouper.py
  • [] pandas / tests / indexes / multi / test_indexing.py
  • [] pandas / tests / io / test_common.py
  • [] pandas / tests / io / test_sql.py
  • [] pandas / tests / plotting / test_series.py
  • [] pandas / tests / io / test_fsspec.py
  • [] pandas / tests / extension / test_floating.py
  • [] pandas / tests / indexes / multi / test_setops.py
  • [] pandas / tests / reshape / test_get_dummies.py
  • [] pandas / tests / plotting / frame / test_frame_subplots.py
  • [] pandas / tests / plotting / test_backend.py
  • [] pandas / tests / generic / methods / test_sample.py
  • [] pandas / tests / plotting / test_boxplot_method.py
  • [] pandas / tests / io / test_parquet.py
  • [] pandas / tests / extension / test_string.py
  • [] pandas / tests / io / pytables / test_complex.py
  • [] pandas / tests / indexes / test_numpy_compat.py
  • [] pandas / tests / io / test_gcs.py
  • [] pandas / tests / io / sas / test_sas7bdat.py
  • [] pandas / tests / window / test_apply.py
  • [] pandas / tests / series / test_ufunc.py
  • [] pandas / tests / plotting / frame / test_frame.py
  • [] pandas / tests / reshape / test_union_categoricals.py
  • [] pandas / tests / io / json / test_ujson.py
  • [] pandas / tests / indexing / test_coercion.py
  • [] pandas / tests / io / pytables / test_store.py
  • []パンダ/tests/computation/test_compat.py
  • [] pandas / tests / io / json / test_pandas.py
  • [] pandas / tests / io / json / test_json_table_schema.py

    -[] pandas / tests / scalar / test_nat.py

ノヌト

ファむルが絶えず移動/名前倉曎されるず、リストが倉曎される堎合がありたす。


もずもず@gfyoungによっお開かれた23922からほずんどすべおを取りたした。

Style Testing good first issue

党おのコメント51件

私がもらう

  • [x] pandas / tests / test_common.py
  • [x] pandas / tests / test_downstream.py
  • [x] pandas / tests / test_errors.py
  • [x] pandas / tests / test_lib.py
  • [x] pandas / tests / test_take.py
  • [x] pandas / tests / internals / test_internals.py
  • [x] pandas / tests / window / test_rolling.py

私は䜜業を開始したす

pandas / tests / arithmetic / test_numeric.py
pandas / tests / arithmetic / test_object.py
pandas / tests / arithmetic / test_period.py
pandas / tests / arithmetic / test_timedelta64.py
pandas / tests / arrays / interval / test_interval.py

@ gdex1これがお圹に立おば幞いです:)

数字は行番号を衚したす

pandas/tests/arithmetic/test_numeric.py:138
pandas/tests/arithmetic/test_numeric.py:141
pandas/tests/arithmetic/test_numeric.py:190
pandas/tests/arithmetic/test_numeric.py:208
pandas/tests/arithmetic/test_numeric.py:210
pandas/tests/arithmetic/test_numeric.py:212
pandas/tests/arithmetic/test_numeric.py:214
pandas/tests/arithmetic/test_numeric.py:232
pandas/tests/arithmetic/test_numeric.py:234
pandas/tests/arithmetic/test_numeric.py:236
pandas/tests/arithmetic/test_numeric.py:238
pandas/tests/arithmetic/test_numeric.py:519
pandas/tests/arithmetic/test_numeric.py:610
pandas/tests/arithmetic/test_numeric.py:615
pandas/tests/arithmetic/test_numeric.py:617
pandas/tests/arithmetic/test_numeric.py:795
pandas/tests/arithmetic/test_numeric.py:798
pandas/tests/arithmetic/test_numeric.py:819
pandas/tests/arithmetic/test_object.py:140
pandas/tests/arithmetic/test_object.py:152
pandas/tests/arithmetic/test_object.py:154
pandas/tests/arithmetic/test_object.py:278
pandas/tests/arithmetic/test_object.py:280
pandas/tests/arithmetic/test_object.py:282
pandas/tests/arithmetic/test_object.py:284
pandas/tests/arithmetic/test_object.py:298
pandas/tests/arithmetic/test_object.py:301
pandas/tests/arithmetic/test_object.py:315
pandas/tests/arithmetic/test_object.py:318



md5-634e15eb80aa764171dbacd11a06b70b



pandas/tests/arithmetic/test_timedelta64.py:51
pandas/tests/arithmetic/test_timedelta64.py:445
pandas/tests/arithmetic/test_timedelta64.py:607
pandas/tests/arithmetic/test_timedelta64.py:609
pandas/tests/arithmetic/test_timedelta64.py:703
pandas/tests/arithmetic/test_timedelta64.py:705
pandas/tests/arithmetic/test_timedelta64.py:707
pandas/tests/arithmetic/test_timedelta64.py:709
pandas/tests/arithmetic/test_timedelta64.py:741
pandas/tests/arithmetic/test_timedelta64.py:743
pandas/tests/arithmetic/test_timedelta64.py:960
pandas/tests/arithmetic/test_timedelta64.py:972
pandas/tests/arithmetic/test_timedelta64.py:1028
pandas/tests/arithmetic/test_timedelta64.py:1037
pandas/tests/arithmetic/test_timedelta64.py:1039
pandas/tests/arithmetic/test_timedelta64.py:1502
pandas/tests/arithmetic/test_timedelta64.py:1505
pandas/tests/arithmetic/test_timedelta64.py:1508
pandas/tests/arithmetic/test_timedelta64.py:1511
pandas/tests/arithmetic/test_timedelta64.py:1536
pandas/tests/arithmetic/test_timedelta64.py:1591
pandas/tests/arithmetic/test_timedelta64.py:1783
pandas/tests/arithmetic/test_timedelta64.py:1785
pandas/tests/arithmetic/test_timedelta64.py:1911
pandas/tests/arithmetic/test_timedelta64.py:1960
pandas/tests/arithmetic/test_timedelta64.py:1962
pandas/tests/arithmetic/test_timedelta64.py:1968



md5-634e15eb80aa764171dbacd11a06b70b



pandas/tests/arrays/interval/test_interval.py:155

@gfyoungリストは実際にはgrep -r -e "pytest.raises([a-zA-Z]*)" pandas/tests -lによっお生成されたのではなく、30755 bare_pytest_raisesず呌ばれる怜蚌タむプのスクリプトによっお生成されたした。マヌゞされたすsmile

@MomIsBestFriend私がお手䌝いしたす
pandas / tests / base / test_constructors.py
pandas / tests / base / test_ops.py

私はこれらの䞖話をするこずができたす
@MomIsBestFriend

pandas / tests / io / test_html.py
pandas / tests / io / test_parquet.py
pandas / tests / io / test_sql.py
pandas / tests / io / test_stata.py
pandas / tests / plotting / test_backend.py
pandas / tests / plotting / test_boxplot_method.py
pandas / tests / plotting / test_frame.py
pandas / tests / plotting / test_hist_method.py
pandas / tests / plotting / test_series.py
pandas / tests / Reductions / test_reductions.py

@MomIsBestFriend https://github.com/pandas-dev/pandas/issues/23922で、これに぀いおかなりの議論がありたした。 私がそこで蚀ったように繰り返すので私たちはすべおの゚ラヌメッセヌゞを「盲目的に」䞻匵するべきではないず思いたす。

そのスレッドで蚀われたいく぀かのこずそれを内郚゚ラヌメッセヌゞに制限し、䞀臎をメッセヌゞのいく぀かのキヌワヌドに制限し、耇雑なパタヌンを避けたす。

たた、゚ラヌメッセヌゞを衚明するこずは、それが適切で明確な゚ラヌメッセヌゞであるかどうかを実際にチェックし、これを改善する可胜性があるこずず密接に関連しおいるず思いたす。

ここに眮く他の問題の議論から泚意点のリストを抜出するのは良いかもしれたせん。

@jorisvandenbossche

@ MomIsBestFriend 23922で、これに぀いおかなりの議論がありたした。 私がそこで蚀ったように繰り返すので私たちはすべおの゚ラヌメッセヌゞを「盲目的に」䞻匵するべきではないず思いたす。

私は完党に同意したすが、問題は、どの゚ラヌメッセヌゞをアサヌトし、䜕をアサヌトしないかに関するルヌルを䜕らかの方法で定矩し、同時に維持する堎合、どの゚ラヌメッセヌゞをアサヌトするか、どの゚ラヌメッセヌゞをアサヌトしないかを知らないこずです。この号は「初心者にやさしい」、玠晎らしいIMOでしょう。

たた、CIでこれを実斜する堎合は、 bare pytest raisesが意図的に「裞」であるものを䜕らかの方法でマヌクする必芁がありたす isort: skipのスタむルのIMOコメントで十分です。人々は、特定のbare pytest raiseが故意にむき出しになっおいるこずを知っおいるでしょう。

そのスレッドで蚀われたいく぀かのこずそれを内郚゚ラヌメッセヌゞに制限し、䞀臎をメッセヌゞのいく぀かのキヌワヌドに制限し、耇雑なパタヌンを避けたす。

内郚゚ラヌメッセヌゞをテストしたくない理由がわかりたせん。さらに詳しく説明しおいただけたすか

https://github.com/pandas-dev/pandas/issues/23922#issuecomment -458551763であなたが指摘した点がわかり+1ですが、私は+2 https://github.com/pandas-dev/pandas/issues/23922#issuecomment-458733117およびhttps://github.com/pandas-dev/pandas/issues/で+2 意味がある堎合 23922issuecomment -458735169 IMOのメリットは、コストよりも倧きいためです。

たた、゚ラヌメッセヌゞを衚明するこずは、それが適切で明確な゚ラヌメッセヌゞであるかどうかを実際にチェックし、これを改善する可胜性があるこずず密接に関連しおいるず思いたす。

党く同感でありたす。

ここに眮く他の問題の議論から泚意点のリストを抜出するのは良いかもしれたせん。

23922での䌚話を読みたしたが、 IMOが問題の本文に「メモ」ずしお入れる䟡倀のあるものは䜕も芋圓たりたせんでした。芋逃したこずを指摘しおいただけたすか

23922での䌚話を読みたしたが、IMOが問題の本文に「メモ」ずしお入れる䟡倀のあるものは䜕も芋圓たりたせんでした。芋逃したこずを指摘しおいただけたすか

その問題から远加するものは他にあたりありたせん。

私は完党に同意したすが、問題は、どの゚ラヌメッセヌゞをアサヌトし、䜕をアサヌトしないかに関するルヌルを䜕らかの方法で定矩し、同時に維持する堎合、どの゚ラヌメッセヌゞをアサヌトするか、どの゚ラヌメッセヌゞをアサヌトしないかを知らないこずです。この号は「初心者にやさしい」、玠晎らしいIMOでしょう。

たた、CIでこれを実斜する堎合は、裞のpytestが䞊げるものを意図的に「裞」ずしおマヌクする必芁がありたすisortのスタむルのIMOコメントスキップで十分です。たた、他の人は特定のこずを知っおいたす。むき出しのpytestレむズはわざずむき出しです。

これらは、テストするものずテストしないものを遞んで遞択するこずが私が奜む方向ではない理由の䞀郚です。 たた、 exceptブロック内の゚ラヌメッセヌゞ文字列をチェックするこずもあるので、開発䞭に適切な゚ラヌメッセヌゞが圹立぀こずも付け加えおおきたす。

たた、これらの「内郚」メッセヌゞがそれほど重芁ではない堎合、そもそもなぜ゚ラヌメッセヌゞが衚瀺されるのでしょうか。 次に、メッセヌゞが空であるこずを衚明するヘルパヌを䜜成したす。

内郚゚ラヌメッセヌゞをテストしたくない理由がわかりたせん。さらに詳しく説明しおいただけたすか

だから私は「内郚゚ラヌメッセヌゞに制限する」ず蚀いたしたが、「内郚」は少し曖昧かもしれたせん...぀たり、パンダ自䜓から発生する゚ラヌメッセヌゞです。もちろん、それらをテストしたいず思いたす。 しかし、私たちIMOは、あたり倚くの倖郚゚ラヌメッセヌゞをテストするべきではないこずを意味したした。぀たり、numpyや他のラむブラリからのメッセヌゞです。 Numpyはそれらを倉曎する可胜性があり、その埌、numpyの倖芳䞊の倉曎により、テストが倱敗し始めたすこれは仮説ではなく、先週起こったず思いたす。

ここで、 https//github.com/pandas-dev/pandas/pull/30998#discussion_r366726966の別のコンテキストで「内郚」を䜿甚したした決しお衚瀺されるべきでは

23922コメントで指摘された点がわかりたすが、私は+1ですが、23922コメントず23922コメントでは+2意味がある堎合です。 IMOのメリットはコストよりも倧きくなりたす。

ここにリンクする@simonjayhawkinsのコメントを入れたしょう

私は、おそらく間違っお、それが

  1. パラメヌタ化できるテストを特定する
  2. 分割する必芁があるテストを特定する
  3. テストされた故障モヌドのより良い理解
  4. テストに間接的にドキュメントを远加する
  5. ゚ラヌメッセヌゞの䞀貫性を高めるこずができる堎所を特定する
  6. 冗長なテストを特定する
  7. ゚ラヌメッセヌゞの改善に圹立ちたす
  8. 間違った理由で珟圚合栌しおいるテストを特定したす。

それはすべお有甚なこずです、私は完党に同意したす。 しかし、それは簡単なこずではありたせん。この問題からそれらを取り陀きたいのであれば、この問題は初心者向けではありたせん。 もちろん、初心者はこれらすべおを䞀床に行う必芁はありたせんが、アサヌトを远加するPRは、䜕もせずに「珟圚の゚ラヌメッセヌゞをpytest.raises呌び出しに盲目的に远加する」こずにかなり近いず感じおいたす。さらに䞊蚘の点。

たた、䞊蚘の点がこの挔習を圹立おるのであれば、この問題の䞀番䞊に眮くのが圹立぀、これに぀いおのより具䜓的な指瀺だず思いたす。


明確にするために、私はすべお、より良い゚ラヌメッセヌゞず、私たちが持っおいるず䞻匵するより良いテストを求めお保ちたす。 しかし、時間も限られおおり、各PRには、実行ずレビュヌに時間ず劎力が必芁です。問題は、どこに劎力を費やすのが最適かずいうこずです。
IMOの堎合、「゚ラヌメッセヌゞの改善」に焊点を圓おるよりも、「裞のpytestの発生を修正する」に焊点を圓おる方が䟿利ですそしお、これを実行しおいる間、それらをより適切にテストしたす。

たた、䞊蚘の点がこの挔習を圹立おるのであれば、この問題の䞀番䞊に眮くのが圹立぀、これに぀いおのより具䜓的な指瀺だず思いたす。

これらを远跡するために、より倧きな問題を䜜成するこずは理にかなっおいるかもしれたせんそのような問題に含める䟡倀のある他の問題は、https//github.com/pandas-dev/pandas/issues/19159およびhttps://github.com/pandas-です。 dev / pandas / issues / 21575。

この郚分自䜓は自己完結型であり、初心者にずっお非垞に芪しみやすいものです。

@gfyoungあなたがリンクしおいるこれらの問題は、この議論にどのように関連しおいたすか

@simonjayhawkinsから明瀺的に玹介したコメントに関連しおいたす

31072には、 stata.py䞀臎しないものが1぀含たれおいたす

ここで蚀っおいるようにhttps://github.com/pandas-dev/pandas/pull/31091#issuecomment-575422207私は@jorisvandenbosscheの考えを持っおいたす、倖郚パッケヌゞからの゚ラヌメッセヌゞをテストしないずいう考えです。それらをマヌクするには

特定の゚ラヌメッセヌゞを本圓にテストしたくない堎合公平を期すために倖郚メッセヌゞをどちらの方法でも実行できたす、次のようなヘルパヌ関数を䜜成する必芁があるず思いたす。

〜pythondef external_error_raisedexpected_exceptionpytest.raisesexpected_exception、match = Noneを返したす〜

これにより、これがパンダ以倖の゚ラヌであるこずが将来的に明らかになり、 match=Noneは、裞のpytestレむズのために開発したリンティングチェックを和らげるのに圹立ちたす。

特定の゚ラヌメッセヌゞを本圓にテストしたくない堎合公平を期すために倖郚メッセヌゞをどちらの方法でも実行できたす、次のようなヘルパヌ関数を䜜成する必芁があるず思いたす。

def external_error_raised(expected_exception):
   return pytest.raises(expected_exception, match=None)

これにより、これがパンダ以倖の゚ラヌであるこずが将来的に明らかになり、 match=Noneは、裞のpytestレむズのために開発したリンティングチェックを和らげるのに圹立ちたす。

+1 。

私はそのアむデアが本圓に奜きです、それを私たちのテストの慣習にするこずができたすか

関数/メ゜ッドが゚ラヌを発生させおいるかどうかを関数がテストしおいお、その゚ラヌが倖郚゚ラヌである堎合は、単にmatch=Noneを "pytest.raises```に入れたす。

テストの慣䟋にするこずはできたすか

぀たり、寄皿ガむドにセクションを眮くこずを意味し

関数/メ゜ッドが゚ラヌを発生させおいるかどうかを関数がテストしおいお、その゚ラヌが倖郚゚ラヌである堎合は、単に「pytest.raises」にmatch = Noneを入力したす。

ヘルパヌ関数を远加するこずを考える必芁がないので、ヘルパヌ関数の方がいいず思いたす。 たた、ヘルパヌ名は、なぜそれを行っおいるのかに぀いおはるかに明確です。

特定の゚ラヌメッセヌゞを本圓にテストしたくない堎合公平を期すために倖郚メッセヌゞをどちらの方法でも実行できたす、次のようなヘルパヌ関数を䜜成する必芁があるず思いたす。

def external_error_raised(expected_exception):
   return pytest.raises(expected_exception, match=None)

これにより、これがパンダ以倖の゚ラヌであるこずが将来的に明らかになり、 match=Noneは、裞のpytestレむズのために開発したリンティングチェックを和らげるのに圹立ちたす。

@gfyoungこのヘルパヌ関数をどこに眮くこずをお勧めしたすか どのファむルにあるかのように

pandas._testing

こんにちは、

私は取り組みたいです

pandas / tests / arrays / interval / test_ops.py
pandas / tests / arrays / test_array.py
pandas / tests / arrays / test_boolean.py

こんにちは-私は取り組みたいず思いたす

pandas / tests / arithmetic / test_period.py
pandas / tests / arithmetic / test_timedelta64.py

みなさん、こんにちは。私は次のこずをしたす。

パンダ/tests/computation/test_compat.py
pandas / tests / Computing / test_eval.py
pandas / tests / dtypes / cast / test_upcast.py
pandas / tests / dtypes / test_dtypes.py

@MomIsBestFriendこれはすでに完了しおいたすが、完了ずしおマヌクされおいたせん
pandas / tests / arithmetic / test_numeric.py

アップデヌト

@MomIsBestFriendこれらも
pandas / tests / arithmetic / test_period.py
pandas / tests / arrays / test_integer.py
pandas / tests / arrays / test_period.py

これらは31852に含たれおいたす

pandas / tests / extension / decimal / test_decimal.py
pandas / tests / extension / json / test_json.py
pandas / tests / extension / test_boolean.py
pandas / tests / extension / test_categorical.py
pandas / tests / frame / indexing / test_categorical.py
pandas / tests / frame / indexing / test_indexing.py
pandas / tests / frame / indexing / test_where.py
pandas / tests / frame / methods / test_explode.py
pandas / tests / frame / methods / test_isin.py
pandas / tests / frame / methods / test_quantile.py
pandas / tests / frame / methods / test_round.py
pandas / tests / frame / methods / test_sort_values.py
pandas / tests / frame / methods / test_to_dict.py

私がもらう

pandas / tests / io / excel / test_readers.py
pandas / tests / io / excel / test_writers.py
pandas / tests / io / excel / test_xlwt.py
pandas / tests / io / formats / test_format.py
pandas / tests / io / formats / test_style.py
pandas / tests / io / formats / test_to_latex.py

@MomIsBestFriend
これらはマヌクなしで行われたす

  • pandas / tests / indexes / datetimes / test_astype.py

pandas / tests / indexes / datetimes /test_tools.pyは存圚したせん

やりたす

  • pandas / tests / indexes / datetimes / test_constructors.py
  • pandas / tests / indexes / datetimes / test_date_range.py
  • pandas / tests / indexes / datetimes / test_indexing.py
  • pandas / tests / indexes / datetimes / test_shift.py
  • pandas / tests / indexes / datetimes / test_timezones.py

元の投皿を曎新したした。これで、裞のpytest raisesを怜出するスクリプトができたした。それでも質問がある堎合は、その䜿甚方法の説明を含めたした。

私がもらう、

pandas / tests / arithmetic / test_timedelta64.py

pandas / tests / scalar / timestamp / test_arithmetic.py
pandas / tests / scalar / timestamp / test_comparisons.py
pandas / tests / scalar / timestamp / test_constructors.py
pandas / tests / scalar / timestamp / test_timezones.py
pandas / tests / scalar / timestamp / test_unary_ops.py

pandas / tests / scalar / timestamp /のすべおのテストはすでに修正されおいるようです。

$ git checkout master
Already on 'master'
$ python scripts/validate_unwanted_patterns.py -vt="bare_pytest_raises"  pandas/tests/scalar/timestamp/
$ 

pandas / tests / arrays / test_boolean.py =>がありたせん。

私が取っおいる
pandas / tests / arrays / interval / test_ops.py
pandas / tests / arrays / test_datetimelike.py

pandas / tests / groupby / test_categorical.py
pandas / tests / groupby / test_groupby.py
pandas / tests / groupby / test_timegrouper.py

pandas / tests / arithmetic / test_timedelta64.py =>33010

pandas / tests / scalar / timestamp / test_arithmetic.py =>問題なし
pandas / tests / scalar / timestamp / test_comparisons.py =>問題なし
pandas / tests / scalar / timestamp / test_constructors.py =>問題なし
pandas / tests / scalar / timestamp / test_timezones.py =>問題なし
pandas / tests / scalar / timestamp / test_unary_ops.py =>問題なし

pandas / tests / arrays / test_boolean.py =>がありたせん。

pandas / tests / arrays / interval / test_ops.py =>33010
pandas / tests / arrays / test_datetimelike.py =>33010

pandas / tests / groupby / test_categorical.py =>33144
pandas / tests / groupby / test_groupby.py =>問題なし
pandas / tests / groupby / test_timegrouper.py =>問題なし

pandas / tests / indexes / category / test_category.py =>問題なし
pandas / tests / indexes / common.py33144
pandas / tests / indexes / datetimelike.py33144

pandas / tests / indexes / interval / test_astype.py =>圱響を受けるすべおのテストはxfailedずしおマヌクされおいたすが、ただ修正する必芁がありたすか

pandas / tests / indexes / multi / test_compat.py33144
pandas / tests / indexes / multi / test_duplicates.py =>問題なし
pandas / tests / indexes / multi / test_format.py =>ファむルが芋぀かりたせん。
pandas / tests / indexes / multi / test_reshape.py33144
pandas / tests / indexes / multi / test_setops.py =>問題なし
pandas / tests / indexes / multi / test_sorting.py33144

@ sumanau7䜿甚しおいるファむルをリストしたしたか 私はあなたがマヌゞしたず思うファむルのいく぀かに取り組んでいたす。

で行った

pandas/tests/indexes/categorical/test_category.py
pandas/tests/indexes/period/test_constructors.py
pandas/tests/indexes/period/test_join.py
pandas/tests/indexes/period/test_partial_slicing.py
pandas/tests/indexes/period/test_setops.py
pandas/tests/indexes/timedeltas/test_delete.py

私は䞀緒に働いおいたす

pandas / tests / indexes / ranges / test_constructors.py
pandas / tests / indexes / ranges / test_range.py
pandas / tests / indexing / multiindex / test_chaining_and_caching.py
pandas / tests / indexing / multiindex / test_partial.py
pandas / tests / series / indexing / test_alter_index.py
pandas / tests / arrays / boolean / test_function.py

取りかかっおいる

pandas/tests/reshape/merge/test_multi.py

私がもらう
pandas / tests / window / moments / test_moments_ewm.py
pandas / tests / window / moments / test_moments_rolling.py
pandas / tests / window / test_dtypes.py
pandas / tests / window / test_ewm.py
pandas / tests / window / test_expanding.py
pandas / tests / window / test_timeseries_window.py

たた取る

  • pandas / tests / frame / methods / test_assign.py
  • pandas / tests / frame / methods / test_at_time.py
  • pandas / tests / frame / methods / test_between_time.py
  • pandas / tests / frame / methods / test_first_and_last.py
  • pandas / tests / frame / methods / test_interpolate.py
  • pandas / tests / frame / methods / test_replace.py
  • pandas / tests / frame / test_query_eval.py

やあ、
私はプロゞェクトの新しい開発者であり、これを支揎したいず思いたす。 残りのテストのうち、初心者に最適なものはどれですか

ありがずう、
ケビン

やあ、
私はプロゞェクトの新しい開発者であり、これを支揎したいず思いたす。 残りのテストのうち、初心者に最適なものはどれですか

ありがずう、
ケビン

ようこそ-これらのどれもが他のどれよりも簡単でも難しいものでもないず思いたす、どれも始めるのに良い堎所でしょう

validate_unwanted_pa​​tterns.pyスクリプトの実行䞭に゚ラヌが発生したす。

Traceback (most recent call last):
  File "C:\Users\Kevom\git\pandas\scripts\validate_unwanted_patterns.py", line 397, in <module>
    main(
  File "C:\Users\Kevom\git\pandas\scripts\validate_unwanted_patterns.py", line 352, in main
    for line_number, msg in function(file_obj):
  File "C:\Users\Kevom\git\pandas\scripts\validate_unwanted_patterns.py", line 88, in bare_pytest_raises
    contents = file_obj.read()
  File "C:\Program Files (x86)\Python\lib\encodings\cp1252.py", line 23, in decode
    return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x8d in position 76843: character maps to <undefined>

'pandas / tests /test_strings.py'を読み取るずきに発生したす。すべおのファむルはcp1252ずしお゚ンコヌドされたす。

スクリプトを実行しお、䜜業の重耇を避けるために、ただ完了しおいないテストを再確認したいず思いたした。

ほずんどのNotImplementedErrorは、䞀臎する特定のメッセヌゞがありたせん。目的に反するこずはわかっおいたすが、リンタヌを沈黙させるために、それらをpytest.raises(NotImplementedError, match=None)に倉曎するこずをお勧めしたす。 

私がもらう

  • pandas / tests / tools / test_to_datetime.py
  • pandas / tests / tseries / offsets / test_offsets.py

始めるこず。

-ケビン

私はこれに䞍慣れなので、これから始めたす

  • pandas / tests / tseries / offsets / test_ticks.py

こんにちは、私は貢献するのは初めおです。 この問題の明確な蚘述に感謝したす。 pandas/tests/generic/test_duplicate_labels.pyを取るこずから始め、うたくいったらもう少し取り組みたす。

たずはpandas / tests / arrays /test_datetimelike.pyを取り䞊げたす。
たた、 python scripts/validate_unwanted_patterns.py -vt="bare_pytest_raises" pandas/tests/正垞に実行できない堎合は、
代わりにpython scripts/validate_unwanted_patterns.py -vt="bare_pytest_raises" pandas/tests/**/*.py

今それを実行する最も簡単な方法は、远加するこずです

    -   id: unwanted-patterns-bare-pytest-raises
        name: Check for use of bare use of pytest raises
        language: python
        entry: python scripts/validate_unwanted_patterns.py --validation-type="bare_pytest_raises"
        types: [python]
        files: ^pandas/tests/

- repo: localセクションの.pre-commit-config.yamlしおから、

pre-commit run unwanted-patterns-bare-pytest-raises --all-files.

残りの未凊理のファむルで問題を曎新したした

私はこれらを取るこずができたす

  • [x] pandas / tests / io / pytables / test_timezones.py
  • [] pandas / tests / generic / methods / test_pipe.py
  • [] pandas / tests / reshape / merge / test_merge_asof.py
  • [] pandas / tests / extension / base / reduce.py
  • [] pandas / tests / extension / base / getitem.py
  • pandas / tests / arrays / test_datetimelike.py

これらは、今日のリストのトップ5です。

@marktgrahamただtest_datetime.py実行しおいない堎合。 PRをしようずしおいるので攟っおおいおください

@ liaoaoyuan97心配ありたせん、私はただtest_datetimelike.py觊れおいたせん。

代わりにpandas / tests / extension / base /getitem.pyを䜿甚したす。

validate_unwanted_patterns.pyは私の偎で゚ラヌを発生させたす

$ python scripts/validate_unwanted_patterns.py -vt="bare_pytest_raises" pandas/tests/
Traceback (most recent call last):
  File "scripts/validate_unwanted_patterns.py", line 479, in <module>
    output_format=args.format,
  File "scripts/validate_unwanted_patterns.py", line 435, in main
    with open(file_path, encoding="utf-8") as file_obj:
IsADirectoryError: [Errno 21] Is a directory: 'pandas/tests/'

おそらく37419に関連しおいるようですか

@MarcoGorelliによっお提案されたアプロヌチを詊しおみお、完璧に機胜したした。

今それを実行する最も簡単な方法は、远加するこずです

    -   id: unwanted-patterns-bare-pytest-raises
        name: Check for use of bare use of pytest raises
        language: python
        entry: python scripts/validate_unwanted_patterns.py --validation-type="bare_pytest_raises"
        types: [python]
        files: ^pandas/tests/

- repo: localセクションの.pre-commit-config.yamlしおから、

pre-commit run unwanted-patterns-bare-pytest-raises --all-files.

これを.pre-commit-config.yamlに远加しおから、このスレッドの手順を曎新するのは理にかなっおいたすか

これを.pre-commit-config.yamlに远加しおから、このスレッドの手順を曎新するのは理にかなっおいたすか

発生するすべおの゚ラヌが修正されたら、 .pre-commit-config.yaml远加したす。はい

おそらく37419に関連しおいるようですか

いいえ、これは37379に関連しおいたすこのスクリプトをpre-commitに移動したため、ディレクトリで実行する必芁がなくなりたした

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡