Pandas: Ganti sintaks pemformatan string lama dengan f-string

Dibuat pada 11 Nov 2019  ·  137Komentar  ·  Sumber: pandas-dev/pandas

Karena kami tidak lagi mendukung python 3.5, kami sekarang dapat menggunakan f-string baru sebagai ganti .format() ( dan tentunya format % ).

Catatan:

  • Jangan lupa untuk menautkan masalah ini di pesan isi permintaan tarik Anda, cukup tempel https://github.com/pandas-dev/pandas/issues/29547 di pesan isi permintaan tarik Anda.

  • Jika salah satu file Anda yang diubah terkait dengan #29886 , pastikan untuk menautkan permintaan tarik Anda ke masalah itu juga, cukup tempelkan https://github.com/pandas-dev/pandas/issues/29886 di pesan isi permintaan tarik Anda juga.

  • Silakan komentar apa yang Anda rencanakan untuk dikerjakan, jadi kami tidak akan melakukan pekerjaan ganda.

  • Jika file/file yang harus ditandai sebagai selesai, tidak ditandai, beri komentar beri tahu saya.


Untuk memeriksa file apa yang masih perlu diperbaiki di direktori pandas :

grep -l -R '%s'  --include=*.{py,pyx} pandas/
grep -l -R '%d' --include=*.{py,pyx} pandas/
grep -l -R '\.format(' --include=*.{py,pyx} pandas/

Semua hal di atas juga dapat digunakan sebagai satu liner:

grep -l -R -e '%s' -e '%d' -e '\.format(' --include=*.{py,pyx} pandas/
Tip:

Jika Anda ingin melihat nomor baris kemunculannya, ganti -l dengan -n
Misalnya:

grep -n -R '%s' --include=*.{py,pyx} pandas/

Daftar saat ini adalah:

  • [ ] pandas/compat/pickle_compat.py

  • [ ] pandas/_config/config.py

  • [ ] pandas/core/arrays/datetimelike.py

  • [ ] pandas/core/arrays/datetimes.py

  • [ ] pandas/core/arrays/integer.py

  • [ ] pandas/core/arrays/period.py

  • [ ] pandas/core/computation/pytables.py

  • [ ] pandas/core/config_init.py

  • [ ] pandas/core/frame.py

  • [ ] pandas/core/generic.py

  • [ ] pandas/core/groupby/generic.py

  • [ ] pandas/core/groupby/groupby.py

  • [ ] pandas/core/indexes/base.py

  • [ ] pandas/core/indexes/multi.py

  • [ ] pandas/core/indexes/range.py

  • [ ] pandas/core/ops/docstrings.py

  • [ ] pandas/core/ops/__init__.py

  • [ ] pandas/core/reshape/merge.py

  • [ ] pandas/core/tools/datetimes.py

  • [ ] pandas/io/formats/css.py

  • [ ] pandas/io/formats/excel.py

  • [ ] pandas/io/formats/format.py

  • [ ] pandas/io/formats/html.py

  • [ ] pandas/io/formats/info.py

  • [ ] pandas/io/formats/latex.py

  • [ ] pandas/io/formats/printing.py

  • [ ] pandas/io/formats/style.py

  • [ ] pandas/io/parsers.py

  • [ ] pandas/io/pytables.py

  • [ ] pandas/io/sas/sas_xport.py

  • [ ] pandas/io/stata.py

  • [ ] pandas/_libs/tslibs/c_timestamp.pyx

  • [ ] pandas/_libs/tslibs/frequencies.pyx

  • [ ] pandas/_libs/tslibs/parsing.pyx

  • [ ] pandas/_libs/tslibs/period.pyx

  • [ ] pandas/_libs/tslibs/strptime.pyx

  • [ ] pandas/_libs/tslibs/timedeltas.pyx

  • [ ] pandas/plotting/_matplotlib/converter.py

  • [ ] pandas/tests/arrays/categorical/test_operators.py

  • [ ] pandas/tests/arrays/test_datetimelike.py

  • [ ] pandas/tests/dtypes/test_dtypes.py

  • [ ] pandas/tests/extension/base/setitem.py

  • [ ] pandas/tests/frame/test_constructors.py

  • [ ] pandas/tests/frame/test_missing.py

  • [ ] pandas/tests/frame/test_to_csv.py

  • [ ] pandas/tests/groupby/aggregate/test_other.py

  • [ ] pandas/tests/indexes/datetimes/test_date_range.py

  • [ ] pandas/tests/indexes/datetimes/test_datetime.py

  • [ ] pandas/tests/indexes/datetimes/test_formats.py

  • [ ] pandas/tests/indexes/datetimes/test_partial_slicing.py

  • [ ] pandas/tests/indexes/interval/test_constructors.py

  • [ ] pandas/tests/indexes/interval/test_interval.py

  • [ ] pandas/tests/indexes/multi/test_format.py

  • [ ] pandas/tests/indexes/period/test_formats.py

  • [ ] pandas/tests/indexes/test_base.py

  • [ ] pandas/tests/indexes/timedeltas/test_timedelta.py

  • [ ] pandas/tests/indexing/test_categorical.py

  • [ ] pandas/tests/indexing/test_coercion.py

  • [ ] pandas/tests/io/excel/test_openpyxl.py

  • [ ] pandas/tests/io/excel/test_writers.py

  • [ ] pandas/tests/io/formats/test_format.py

  • [ ] pandas/tests/io/formats/test_printing.py

  • [ ] pandas/tests/io/formats/test_style.py

  • [ ] pandas/tests/io/formats/test_to_csv.py

  • [ ] pandas/tests/io/formats/test_to_html.py

  • [ ] pandas/tests/io/formats/test_to_latex.py

  • [ ] pandas/tests/io/parser/test_compression.py

  • [ ] pandas/tests/io/parser/test_encoding.py

  • [ ] pandas/tests/io/parser/test_header.py

  • [ ] pandas/tests/io/parser/test_parse_dates.py

  • [ ] pandas/tests/io/parser/test_usecols.py

  • [ ] pandas/tests/io/test_html.py

  • [ ] pandas/tests/io/test_sql.py

  • [ ] pandas/tests/io/test_stata.py

  • [ ] pandas/tests/reductions/test_reductions.py

  • [ ] pandas/tests/reshape/test_concat.py

  • [ ] pandas/tests/reshape/test_melt.py

  • [ ] pandas/tests/scalar/period/test_period.py

  • [ ] pandas/tests/scalar/timedelta/test_timedelta.py

  • [ ] pandas/tests/scalar/timestamp/test_constructors.py

  • [ ] pandas/tests/series/indexing/test_numeric.py

  • [ ] pandas/tests/series/indexing/test_take.py

  • [ ] pandas/tests/series/indexing/test_where.py

  • [ ] pandas/tests/series/methods/test_rename.py

  • [ ] pandas/tests/series/test_api.py

  • [ ] pandas/tests/series/test_constructors.py

  • [ ] pandas/tests/series/test_datetime_values.py

  • [ ] pandas/tests/series/test_repr.py

  • [ ] pandas/tests/test_strings.py

  • [ ] pandas/tests/tools/test_to_datetime.py

  • [ ] pandas/tests/tseries/holiday/test_calendar.py

  • [ ] pandas/tests/tseries/holiday/test_holiday.py

  • [ ] pandas/tests/tslibs/test_parsing.py

  • [ ] pandas/tests/util/test_assert_frame_equal.py

  • [ ] pandas/tseries/frequencies.py

  • [ ] pandas/util/_decorators.py

  • [ ] pandas/util/_test_decorators.py

  • [ ] pandas/util/_validators.py

  • [ ] pandas/_version.py


CATATAN:

Daftar dapat berubah karena file dipindahkan/diganti namanya terus-menerus.


File dan perintah yang diwarisi dari PR ini.

Style good first issue

Komentar yang paling membantu

Menambahkan permintaan tarik pertama saya dengan ini https://github.com/pandas-dev/pandas/pull/32007 :
pandas/tests/frame/test_to_csv.py

Semua 137 komentar

Saya mengambil:

  • [x] pandas/_libs/groupby.pyx

  • [x] pandas/_libs/hashing.pyx

  • [x] pandas/_libs/index.pyx

  • [x] pandas/_libs/internals.pyx

  • [x] pandas/_libs/interval.pyx

  • [x] pandas/_libs/lib.pyx

  • [x] pandas/_libs/ops.pyx

  • [x] pandas/_libs/parsers.pyx

  • [x] pandas/_libs/reduction.pyx

  • [x] pandas/_libs/sparse.pyx

  • [x] pandas/_libs/testing.pyx

  • [x] pandas/_libs/tslib.pyx

  • [x] pandas/_libs/window.pyx

Saya akan mengambil:

  • [x] pandas/tests/indexes/test_base.py
  • [x] pandas/tests/indexes/test_category.py
  • [x] pandas/tests/indexes/test_common.py
  • [x] pandas/tests/indexes/test_numeric.py

untuk memulai, jika tidak apa-apa!

Hai @MomIsBestFriend Bisakah Anda merekomendasikan alat apa pun untuk konversi ini? Pandangan sekilas memberi saya ini:

  1. pyupgrade
  2. fstringify
  3. terbang

Saya tidak punya pengalaman dengan salah satu dari mereka, tetapi mereka bisa sangat membantu di sini

Halo @SaturnFromTitan , saya pribadi terkadang menggunakan pyupgrade tetapi hanya ketika file tersebut hanya berisi beberapa format string yang sudah ketinggalan zaman di dalamnya. Kemudian saya melihat perubahan dan memperbaiki jika pyupgrade ada yang salah.

Ketika mereka adalah file dengan banyak kejadian, saya memilih yang "kompleks" secara manual (misalnya '%.2f' % my_float ) dan membiarkannya menangani yang umum, biasanya itu benar.

Juga, beberapa perubahan akan membuat file yang diubah tidak kompatibel dengan pep8, jadi ada kebutuhan untuk memperbaikinya juga, jika tidak maka tidak akan lulus tes.

Akan mengambil selanjutnya:

  • [x] pandas/compat/__init__.py

  • [x] pandas/compat/numpy/function.py

  • [x] pandas/compat/numpy/__init__.py

  • [x] pandas/compat/_optional.py

Saya akan mengambil:

  • [x] pandas/core/reshape/concat.py
  • [x] pandas/core/reshape/melt.py
  • [ ] pandas/core/reshape/merge.py
  • [x] pandas/core/reshape/pivot.py
  • [x] pandas/core/reshape/reshape.py
  • [ ] pandas/core/reshape/tile.py

Apa pendapat semua orang tentang menandai ini sebagai good first issue ? Ini harus berlaku untuk sebagian besar file di sini. Perubahan yang perlu dilakukan biasanya hanya beberapa baris atau lebih per file, dan siapa pun yang membuat perubahan tidak perlu terlalu khawatir tentang mempengaruhi bagian lain dari kode (karena fungsi akhir yang dilakukan adalah sama).

Saya membayangkan pengaturan yang mirip dengan #28926.

penggantian f-string ditempatkan pada:

  • [x] pandas/core/groupby/generic.py
  • [x] pandas/core/groupby/groupby.py
  • [x] pandas/core/groupby/grouper.py
  • [x] pandas/core/groupby/ops.py

ref #29701

Akan mengambil selanjutnya:

  • [x] pandas/_libs/tslibs/conversion.pyx

  • [x] pandas/_libs/tslibs/c_timestamp.pyx

  • [x] pandas/_libs/tslibs/fields.pyx

  • [x] pandas/_libs/tslibs/nattype.pyx

  • [x] pandas/_libs/tslibs/np_datetime.pyx

  • [x] pandas/_libs/tslibs/offsets.pyx

  • [x] pandas/_libs/tslibs/parsing.pyx

  • [x] pandas/_libs/tslibs/timestamps.pyx

  • [x] pandas/_libs/tslibs/timezones.pyx

  • [x] pandas/_libs/tslibs/tzconversion.pyx

saya akan mengambil

  • [x] pandas/plotting/_core.py
  • [x] pandas/plotting/_matplotlib/boxplot.py
  • [x] pandas/plotting/_matplotlib/converter.py
  • [x] pandas/plotting/_matplotlib/core.py
  • [x] pandas/plotting/_matplotlib/misc.py
  • [x] pandas/plotting/_matplotlib/style.py
  • [x] pandas/plotting/_matplotlib/timeseries.py
  • [x] pandas/plotting/_matplotlib/tools.py
  • [x] pandas/plotting/_misc.py

ref #29781

Saya akan mengambil:

  • [x] pandas/core/reshape/concat.py
  • [x] pandas/core/reshape/melt.py
  • [ ] pandas/core/reshape/merge.py
  • [x] pandas/core/reshape/pivot.py
  • [x] pandas/core/reshape/reshape.py
  • [ ] pandas/core/reshape/tile.py

Apa pendapat semua orang tentang menandai ini sebagai good first issue ? Ini harus berlaku untuk sebagian besar file di sini. Perubahan yang perlu dilakukan biasanya hanya beberapa baris atau lebih per file, dan siapa pun yang membuat perubahan tidak perlu terlalu khawatir tentang mempengaruhi bagian lain dari kode (karena fungsi akhir yang dilakukan adalah sama).

Saya membayangkan pengaturan yang mirip dengan #28926.

Tentu ive diberi label yang sesuai. Terima kasih

Mengambil selanjutnya:

  • [x] pandas / io / msgpack / _packer.pyx

  • [x] pandas / io / msgpack / _unpacker.pyx

  • [x] pandas / io / sas / sas.pyx

Maaf, saya baru menyadari bahwa Anda telah meminta untuk menentukan file mana yang akan dikerjakan. Saya baru saja menggunakan

grep -n -R -e '%s' -e '%d' -e '.format(' --include=*.{py,pyx} pandas/

Untuk menemukan format lama. saya minta maaf

Maaf, saya baru menyadari bahwa Anda telah meminta untuk menentukan file mana yang akan dikerjakan. Saya baru saja menggunakan

@ForTimeBeing Itu sebabnya saya mengedit posting, senang Anda perhatikan :)

dapatkah Anda memposting apa yang Anda kerjakan? untuk berjaga-jaga jika seseorang mencari komentar.

Tentu, saya mengambil;

  • [x] pandas/tests/resample/test_datetime_index.py
  • [x] pandas/tests/resample/test_time_grouper.py
  • [x] pandas/tests/tseries/offsets/common.py
  • [x] pandas/errors/__init__.py
  • [x] pandas/tests/arrays/interval/test_ops.py
  • [x] pandas/tests/arrays/sparse/test_array.py
  • [x] pandas/tests/arrays/sparse/test_libsparse.py
  • [x] pandas/tests/extension/arrow/arrays.py
  • [x] pandas/tests/extension/base/printing.py
  • [x] pandas/tests/extension/decimal/array.py
  • [x] pandas/tests/resample/test_datetime_index.py
  • [x] pandas/tests/resample/test_time_grouper.py
  • [x] pandas/tests/scalar/test_nat.py
  • [x] pandas/tests/tseries/offsets/common.py

dan dibawah

  • [x] pandas/tseries/frequencies.py

.format masih ada dan ditampilkan dalam pencarian grep, tetapi tidak ada literal untuk diubah ke fstring. Tidak yakin apakah ada cara lain untuk melakukannya atau tetap apa adanya, tetapi semua literal ditukar ke fstring sekarang di file itu.

.format masih ada dan ditampilkan dalam pencarian grep, tetapi tidak ada literal untuk diubah ke fstring. Tidak yakin apakah ada cara lain untuk melakukannya atau tetap apa adanya, tetapi semua literal ditukar ke fstring sekarang di file itu.

@ForTimeBeing
Tidak ada masalah:)
terima kasih untuk PRnya :)

saya mengambil

  • [x] pandas/core/window/common.py
  • [x] pandas/core/window/ewm.py
  • [x] pandas/core/window/expanding.py
  • [x] pandas/core/window/rolling.py

ref #29952

Saya akan mengambil:

  • [x] ci/print_skipped.py

  • [x] doc/make.py

  • [x] doc/sphinxext/announce.py

  • [x] doc/sphinxext/contributors.py

Bekerja pada: 'pandas/core/dtypes/dtypes.py'

Telah mengambil:

  • [x] pandas/core/arrays/base.py
  • [x] pandas/core/arrays/datetimelike.py
  • [x] pandas/core/arrays/datetimes.py
  • [x] pandas/core/arrays/string_.py
  • [x] pandas/core/arrays/timedeltas.py
  • [x] pandas/core/common.py
  • [x] pandas/core/computation/align.py
  • [x] pandas/core/computation/engines.py
  • [x] pandas/core/computation/eval.py
  • [x] pandas/core/computation/expressions.py
  • [x] pandas/core/computation/expr.py
  • [x] pandas/core/computation/ops.py
  • [x] pandas/core/computation/pytables.py
  • [x] pandas/core/computation/scope.py
  • [x] pandas/core/frame.py
  • [x] pandas/core/generic.py
  • [x] pandas/core/strings.py

ref: #30116, #30135, #30363

Saya akan mengambil:

  • [x] pandas/_libs/tslibs/frequencies.pyx
  • [x] pandas/_libs/tslibs/period.pyx
  • [x] pandas/_libs/tslibs/strptime.pyx

Saya memiliki masalah dengan string yang telah ditentukan. Saya menemukan solusinya tetapi saya tidak yakin apakah itu yang benar.
Bayangkan situasi di mana Anda memiliki string yang telah ditentukan seperti:
THE_MESSAGE = "Pesan dengan argumen. Arg1: {arg1}, Arg2: {arg2}."
Yang disebut dengan .format() seperti:
THE_MESSAGE.format(arg1_str, arg2_str).

Bisakah saya menulis ulang ini dengan menggunakan fungsi lambda dengan cara yang dijelaskan di bawah ini?
THE_MESSAGE = lambda arg1, arg2: f"Pesan dengan argumen. Arg1: {arg1}, Arg2: {arg2}."

dan menyebutnya dengan
THE_MESSAGE(arg1_str, arg2_str)?

Saya tahu itu akan berhasil, saya tidak yakin apakah itu cara terbaik untuk mendekati masalah ini :)

Saya memiliki masalah dengan string yang telah ditentukan.

Saya sepenuhnya mengerti, Seperti yang dijelaskan oleh pep 498 :

String reguler digabungkan pada waktu kompilasi, dan string f digabungkan pada waktu proses.

Kita perlu memikirkan cara untuk menghapus penggunaan .format() dan menggunakan template string yang lain.

Satu-satunya hal yang dapat saya pikirkan saat ini adalah string.Template dari stdlib, tetapi saya benar-benar tidak tahu.

@jbrockmendel Bisakah Anda membantu kami?

@MomIsBestFriend apakah menurut Anda fungsi lambda berlebihan untuk ini?

@MomIsBestFriend saya pikir ini mungkin kasus di mana hidup dengan beberapa .format s adalah cara untuk pergi

@MomIsBestFriend apakah menurut Anda fungsi lambda berlebihan untuk ini?

Saya tidak jauh dari seorang ahli, silakan tanyakan pada salah satu pengembang.

telah mengambil

  • [x] pandas/core/accessor.py
  • [x] pandas/core/algorithms.py

ref #30120

telah mengambil

  • [x] pandas/core/arrays/sparse/accessor.py
  • [x] pandas/core/arrays/sparse/array.py
  • [x] pandas/core/arrays/sparse/dtype.py
  • [x] pandas/core/arrays/sparse/scipy_sparse.py

ref #30121

telah mengambil

  • [x] pandas/core/arrays/_ranges.py
  • [x] pandas/core/arrays/integer.py
  • [x] pandas/core/arrays/interval.py
  • [x] pandas/core/arrays/numpy_.py
  • [x] pandas/core/arrays/period.py

ref #30124

saya akan mengambil

  • [x] pandas/io/formats/css.py
  • [x] pandas/io/formats/excel.py
  • [x] pandas/io/formats/style.py

Sunting:
Memukau:

  • [x] pandas/util/_decorators.py
  • [x] pandas/util/_depr_module.py

  • [x] pandas/util/_doctools.py

  • [x] pandas/util/_print_versions.py

  • [x] pandas/util/_test_decorators.py

  • [x] pandas/util/_tester.py

  • [x] pandas/util/testing.py

  • [x] pandas/util/_validators.py

saya akan mengambil

  • [ ] pandas/core/config_init.py
  • [x] pandas/core/construction.py
  • [x] pandas/core/dtypes/base.py
  • [x] pandas/core/dtypes/cast.py

Terima kasih!

Saya akan mengambil:

pandas/tests/plotting/test_converter.py

pandas/tests/plotting/test_datetimelike.py

pandas/tests/plotting/test_series.py

saya akan mengambil

  • [x] pandas/core/indexes/accessors.py
  • [x] pandas/core/indexes/category.py
  • [x] pandas/core/indexes/datetimelike.py
  • [x] pandas/core/indexes/datetimes.py
  • [x] pandas/core/indexes/frozen.py
  • [x] pandas/core/indexes/interval.py
  • [x] pandas/core/indexes/multi.py
  • [x] pandas/core/indexes/numeric.py
  • [x] pandas/core/indexes/period.py
  • [x] pandas/core/indexes/range.py
  • [x] pandas/core/indexes/timedeltas.py

30273

Halo, @MomIsBestFriend

pandas/tests/plotting/test_converter.py

pandas/tests/plotting/test_datetimelike.py

pandas/tests/plotting/test_series.py

Telah selesai. Terima kasih.

Halo
saya bisa mengambil

  • [ ] pandas/core/dtypes/dtypes.py
  • [ ] pandas/core/dtypes/common.py

Terima kasih

Halo, saya akan mengambil

  • [x] setup.py
  • [x] pandas/_config/config.py
  • [x] pandas/_config/localization.py

Terima kasih!

saya mengambil:

  • pandas/core/missing.py
  • pandas/core/nanops.py
  • pandas/tests/indexes/datetimes/test_partial_slicing.py

Tautan ke pr saya: https://github.com/pandas-dev/pandas/pull/30278

Saya akan mengerjakan:

  • [ ] pandas/core/arrays/base.py

Di sini karena tag "masalah pertama yang bagus"

Saya akan mengambil:

  • [ ] pandas/io/sql.py

  • [ ] pandas/io/stata.py

Terima kasih!

Aku akan melakukannya:

  • [x] pandas/core/resample.py
  • [x] pandas/core/indexing.py
  • [x] pandas/core/internals/construction.py
  • [x] pandas/core/internals/managers.py
  • [x] pandas/core/internals/blocks.py

saya ingin mengambil
saya baru saja melakukan permintaan tarik di atasnya

  • [x] pandas/core/indexers.pyz

Hebat, selalu ingin ikut serta dalam Panda. Akan diperbarui ketika saya tahu apa yang dapat saya penuhi dalam beberapa minggu ke depan ...

saya bisa mengambil
pandas/_version.py

Melompat:

  • [ ] pandas/core/arrays/datetimelike.py
  • [x] pandas/io/formats/printing.py
  • [x] pandas/tests/extension/list/array.py
  • [x] pandas/tests/indexes/datetimes/test_ops.py
  • [x] pandas/tests/indexes/multi/test_analytics.py

Saya akan mengambil pandas/io/formats/csvs.py

Saya mengambil:

  • [x] pandas/core/series.py (tidak ada metode string kuno dalam kode, hanya dokumentasi)
  • [x] pandas/core/tools/datetimes.py (mengubah kode, akan menguji dan membuat pullrequest sebelum 25 Desember)

Pertanyaan: Apakah ada jawaban tentang apakah pemformatan string jadul harus tetap ada di referensi API?

Misalnya, dalam series.map() :

 It also accepts a function:

        >>> s.map('I am a {}'.format)
        0       I am a cat
        1       I am a dog
        2       I am a nan
        3    I am a rabbit
        dtype: object

Mengganti ini dengan contoh f-string memaksa sesuatu seperti:

      >>> s.map(lambda x: f'I am a {x}')
        0       I am a cat
        1       I am a dog
        2       I am a nan
        3    I am a rabbit
        dtype: object

Yang bukan pengganti yang tepat (f-string bukan fungsi, saya menggunakan lambda untuk menjadikannya fungsi yang mereplikasi efek bersih dari 'I am a '.format() ), dan menimbulkan beberapa masalah pelik tentang menempatkan beberapa praktik tidak-terbaik dalam dokumentasi.

Untuk saat ini, saya sedang mempertimbangkan untuk mengubah dokumentasi sebagai di luar cakupan, menunggu keputusan komunitas tentang cara menangani kasus seperti ini.

Sudah selesai (tidak yakin oleh siapa):
pandas/tests/arrays/interval/test_ops.py

Saya juga akan mengambil

  • [x] pandas/tests/scalar/interval/test_ops.py
  • [x] pandas/tests/computation/test_eval.py
  • [x] panda/tes/dtypes/*
  • [x] pandas/tests/dtypes/cast/test_infer_dtype.py
  • [x] pandas/tests/dtypes/test_dtypes.py
  • [x] pandas/tests/dtypes/test_inference.py

Pertanyaan: Apakah ada jawaban tentang apakah pemformatan string jadul harus tetap ada di referensi API?

cc @WillAyd @jreback

Saya tidak tahu apa yang Anda anggap sebagai "format string jadul" tetapi .format akan memiliki beberapa kasus penggunaan yang tidak tercakup oleh f-string (yaitu parameterisasi tertunda) jadi yakin itu akan tetap ada . Saya tidak berpikir kita harus memiliki sintaks format string Py27 di mana pun

Saya akan mengambil:

  • [x] pandas/tests/io/formats/test_css.py
  • [x] pandas/tests/io/formats/test_format.py
  • [x] pandas/tests/io/formats/test_printing.py
  • [x] pandas/tests/io/formats/test_style.py
  • [x] pandas/tests/io/formats/test_to_csv.py
  • [x] pandas/tests/io/formats/test_to_excel.py

saya akan mengambil

  • [x] pandas/compat/pickle_compat.py
  • [x] pandas/_config/config.py
  • [x] pandas/core/arrays/boolean.py

Di # 30601, saya telah mengambil

  • [x] pandas/io/excel/_base.py
  • [x] pandas/io/excel/_odfreader.py
  • [x] pandas/io/excel/_openpyxl.py
  • [x] pandas/io/excel/_util.py
  • [x] pandas/io/excel/_xlwt.py
  • [x] pandas/tests/generic/test_frame.py
  • [x] pandas/tests/generic/test_generic.py
  • [x] pandas/tests/generic/test_series.py

Saya dapat mengambil dua file di bawah ini untuk memulai jika tidak apa-apa!

  • [x] pandas/tests/base/test_conversion.py
  • [x] pandas/tests/base/test_ops.py

Perubahan ini telah dilakukan di #30604

Mengambil:

  • [ ] pandas/core/ops/array_ops.py
  • [ ] pandas/core/ops/dispatch.py
  • [ ] pandas/core/ops/docstrings.py
  • [ ] pandas/core/ops/invalid.py
  • [ ] pandas/core/ops/methods.py
  • [ ] pandas/core/ops/roperator.py

Apakah ada cara yang lebih disukai untuk mencatat penggunaan lama yang dimaksudkan dari .format yang dibiarkan apa adanya, dalam PR? Dalam kasus (salah) menganggap sesuatu adalah kasus penggunaan yang baik dan diabaikan dalam PR

Bekerja pada

  • [x] pandas/tests/groupby/aggregate/test_other.py
  • [x] pandas/tests/groupby/test_apply.py
  • [x] pandas/tests/groupby/test_bin_groupby.py
  • [x] pandas/tests/groupby/test_categorical.py
  • [x] pandas/tests/groupby/test_counting.py
  • [x] pandas/tests/groupby/test_value_counts.py
  • [x] pandas/tests/groupby/test_function.py
  • [x] pandas/tests/groupby/test_groupby.py
  • [x] pandas/tests/groupby/test_transform.py
  • [x] pandas/tests/groupby/test_whitelist.py

saya akan mengambil

  • [X] scripts/validate_docstrings.py
  • [X] scripts/tests/test_validate_docstrings.py
  • [X] scripts/generate_pip_deps_from_conda.py
  • [X] scripts/download_wheels.py
  • [X] pandas/tseries/holiday.py
  • [X] pandas/tests/window/test_window.py
  • [X] pandas/tests/util/test_validate_kwargs.py
  • [X] pandas/tests/util/test_validate_args.py

Saya ingin mencoba dan mengambil:

  • [x] pandas/tests/util/test_assert_almost_equal.py
  • [x] pandas/tests/util/test_assert_categorical_equal.py
  • [x] pandas/tests/util/test_assert_extension_array_equal.py
  • [x] pandas/tests/util/test_assert_frame_equal.py
  • [x] pandas/tests/util/test_assert_index_equal.py
  • [x] pandas/tests/util/test_assert_numpy_array_equal.py
  • [x] pandas/tests/util/test_validate_args_and_kwargs.py

Saya ingin mengambil:

  • [x] pandas/core/arrays/period.py
  • [x] pandas/core/dtypes/common.py
  • [x] pandas/core/dtypes/dtypes.py
  • [x] pandas/core/frame.py

Terima kasih @HH-MWB

Saya akan mengambil:

  • [ ] pandas/core/arrays/timedeltas.py

Saya menemukan banyak kode di @Appender() menggunakan % untuk memformat string. Kode tersebut menggunakan _shared_docs sebagai template, yang sebagian besar didefinisikan di /pandas/core/generic.py dan telah digunakan melintasi banyak file.

Saya ingin mengganti semua format _shared_docs relevan. Perubahan ini perlu memodifikasi banyak file, tetapi saya tidak akan dapat memeriksa semua sintaks pemformatan string lainnya dalam file tersebut.

Apakah itu terdengar bagus? Haruskah saya melakukannya? @datapythonista @MomIsBestFriend

Saya menemukan banyak kode di @Appender() menggunakan % untuk memformat string. Kode tersebut menggunakan _shared_docs sebagai template, yang sebagian besar didefinisikan di /pandas/core/generic.py dan telah digunakan melintasi banyak file.

Saya ingin mengganti semua format _shared_docs relevan. Perubahan ini perlu memodifikasi banyak file, tetapi saya tidak akan dapat memeriksa semua sintaks pemformatan string lainnya dalam file tersebut.

Apakah itu terdengar bagus? Haruskah saya melakukannya? @datapythonista @MomIsBestFriend

@HH-MWB Saya tidak benar-benar memiliki suara tentang ini, saya pikir jreback dan WillAyd dan datapythonista (Tidak menandai karena saya tidak ingin mengganggu mereka), dapat membantu Anda lebih dari yang saya bisa :)

Apa yang Anda coba ganti dengan Appender? Saya tidak berpikir bisa menjadi f-string

Akan baik-baik saja dengan .format menggantikan sintaks Py27 tetapi mungkin layak untuk membuka masalah terpisah untuk didiskusikan

Apa yang Anda coba ganti dengan Appender? Saya tidak berpikir bisa menjadi f-string

Akan baik-baik saja dengan .format menggantikan sintaks Py27 tetapi mungkin layak untuk membuka masalah terpisah untuk didiskusikan

@WillAyd Saya pikir string.Template dari stdlib, adalah metode yang tepat untuk ini.
Ada pikiran?

Hai @WillAyd , maaf saya tidak menjelaskannya. Ya, ide awal saya adalah mengganti % dengan .format , dan juga mengganti kode seperti %(XXX)s menjadi {XXX} di _shared_docs template. Seperti yang dikatakan @MomIsBestFriend , string.Template akan menjadi pilihan lain.

Saya membuka masalah terpisah untuk diskusi lebih lanjut. Terima kasih!

Mengambil:

  • [x] pandas/tests/reshape/test_reshape.py
  • [x] pandas/tests/scalar/period/test_period.py

ref #31412

@MomIsBestFriend Halo! Kontributor open-source pertama kali di sini! Saya sangat bersemangat untuk PR pertama saya! Saya akan mencoba mengerjakan file-file berikut:
versioneer.py
web/pandas_web.py
Terima kasih!!

@drewseibert versioneer.py adalah @MomIsBestFriend dapatkah Anda menghapus ini dari daftar untuk menghindari kebingungan ini

@jbrockmendel Terima kasih atas perhatiannya. Bersamaan dengan itu, tampaknya file lain yang saya sebutkan "web/pandas_web.py" telah dikerjakan juga. Keduanya dapat dihapus dari daftar pekerjaan.

Juga, saya mendapatkan kesalahan izin 403 ketika saya mencoba untuk mendorong komit. Saya menambahkan kunci SSH dan mencoba mengatur URL jarak jauh. Tidak berfungsi untuk saya apakah saya mengkloning dengan SSH atau HTTPS. Bantuan apa pun dihargai! Terima kasih!

@MomIsBestFriend Halo! Kontributor open-source pertama kali di sini! Saya sangat bersemangat untuk PR pertama saya! Saya akan mencoba mengerjakan file-file berikut:
versioneer.py
web/pandas_web.py
Terima kasih!!

Semoga sukses @drewseibert

Saya akan mengambil:

pandas/core/reshape/concat.py
pandas/core/reshape/melt.py
pandas/core/reshape/merge.py
pandas/core/reshape/pivot.py
pandas/core/reshape/reshape.py

Bekerja pada yang ini sekarang:

pandas/tests/io/test_pickle.py

Hai
saya akan mengambil

pandas/util/_print_versions.py

pandas/util/_test_decorators.py

https://github.com/pandas-dev/pandas/pull/31628 seharusnya baik-baik saja :)

Saya akan mengambil pandas/tests/frame/test_repr_info.py

ref: https://github.com/pandas-dev/pandas/pull/31639

Hei, aku akan mengambil

  • [ ] pandas/core/arrays/integer.py

File-file berikut dapat dicentang pada daftar ...
web/pandas_web.py
pandas/tests/io/test_pickle.py

Terima kasih!

Satu lagi untuk diperiksa .. tidak diperlukan f-string dalam file:
pandas/tests/series/indexing/test_boolean.py

Saya akan mengerjakan yang ini sekarang ...

pandas/tests/series/indexing/test_indexing.py

Terima kasih @drewseibert

Apakah masih ada pekerjaan yang tersisa di sini? Saya ingin berkontribusi

@3vts Ya, tentu saja :)

Saya pikir Anda bisa mengambil

pandas/tests/util/test_assert_extension_array_equal.py


LMK jika Anda ingin lebih.

Sesuatu yang bisa saya bantu! Ini akan menjadi kontribusi open source pertama saya, jadi saya mungkin memerlukan bantuan. Saya telah membaca beberapa artikel tentang cara berkontribusi, tetapi tetap saja.

Yang mana yang Anda ingin saya tangani?

@MomIsBestFriend sepertinya pandas/tests/util/test_assert_extension_array_equal.py telah diperbaiki pada PR #30816 , juga, saya sudah menyiapkan lingkungan. Bisakah Anda memberi saya beberapa beban untuk dikerjakan?

@3vts @GrizzledLabs - jangan ragu untuk mengambil salah satu file yang belum selesai dalam daftar di atas (dan periksa tidak ada orang lain yang mengerjakannya) - lalu beri komentar di sini apa yang sedang Anda kerjakan! Terima kasih !

pandas/core/arrays/boolean.py tampaknya sudah selesai. Saya melihat satu f'string dan tidak ada .format(), kecuali saya melewatkannya.

pandas/core/dtypes/common.py tampaknya sudah selesai juga. f'string tetapi tidak ada .format()

Apakah beberapa perbaikan ini mencakup banyak file? Beberapa tidak berisi .format() tunggal, dan saya bertanya-tanya apakah ada fungsi yang dipanggil di antara file? Apakah satu perbaikan memerlukan perubahan banyak file?

Hai, Kontributor pertama kali di sini! Bersemangat untuk pergi!
Awalnya saya ingin mengambil ini:

pandas/compat/pickle_compat.py
pandas/_config/config.py

tapi kemudian saya melihatnya sudah selesai dan digabungkan, @MomIsBestFriend dapatkah Anda memperbarui daftar di atas untuk mencentangnya sebagai selesai?

Saya akan mengambil ini:

  • [ ] pandas/tests/io/parser/test_usecols.py

  • [ ] pandas/tests/io/pytables/conftest.py

  • [ ] pandas/tests/io/pytables/test_store.py

  • [ ] pandas/tests/io/pytables/test_timezones.py

@MomIsBestFriend meninjau utas yang saya temukan ada pengecualian untuk string yang telah ditentukan. Apakah ini masih berlaku? Atau kita miliki sekarang. solusi?

Saya memiliki masalah dengan string yang telah ditentukan.

Saya sepenuhnya mengerti, Seperti yang dijelaskan oleh pep 498 :

String reguler digabungkan pada waktu kompilasi, dan string f digabungkan pada waktu proses.

Kita perlu memikirkan cara untuk menghapus penggunaan .format() dan menggunakan template string yang lain.

Satu-satunya hal yang dapat saya pikirkan saat ini adalah string.Template dari stdlib, tetapi saya benar-benar tidak tahu.

@jbrockmendel Bisakah Anda membantu kami?

Halo, kontributor pertama kali . Saya akan mengambil:

  • [ X ] pandas/tests/tseries/frequencies/test_inference.py
  • [ X ] pandas/tests/series/methods/test_argsort.py
  • [ X ] pandas/tests/series/test_constructors.py
  • [ X ] pandas/tests/indexing/common.py
  • [ X ] pandas/tests/indexing/test_coercion.py
  • [ X ] pandas/tests/indexing/test_iloc.py
  • [ X ] pandas/tests/indexing/test_indexing.py
  • [ X ] pandas/tests/indexing/test_loc.py
  • [ X ] pandas/tests/indexes/common.py
  • [ X ] pandas/tests/indexes/datetimelike.py

@monicaw218 , saya akan mulai dengan hanya satu file, dan setelah permintaan tarik Anda digabungkan, Anda dapat melanjutkan dengan yang lainnya. Kontribusi pertama biasanya lebih sulit dari yang diharapkan, dan bagi kami (peninjau) biasanya membantu juga jika permintaan tarik kecil. Khusus untuk kontributor baru, di mana lebih banyak umpan balik mungkin diperlukan.

Kedua file ini dapat dicentang dari daftar:
👍
pandas/io/parser.py
pandas/io/pytables.py

Ini juga bagus untuk dilakukan:

pandas/tests/groupby/test_apply.py
pandas/tests/groupby/test_bin_groupby.py

Ini sudah siap di #31914
"pandas/tests/extension/decimal/test_decimal.py"
"pandas/tests/frame/indexing/test_categorical.py"
"pandas/tests/frame/methods/test_describe.py"
"pandas/tests/frame/methods/test_duplicated.py"
"pandas/tests/frame/methods/test_to_dict.py"
"pandas/tests/frame/test_alter_axes.py"
"pandas/tests/frame/test_api.py"
"pandas/tests/frame/test_constructors.py"
"pandas/tests/frame/test_dtypes.py"
"pandas/tests/frame/test_join.py"

Saya akan mengambil "pandas/io/sas/sas_xport.py".

Ini sudah siap di #31933

"pandas/tests/frame/test_operators.py"
"pandas/tests/frame/test_reshape.py"
"pandas/tests/frame/test_timeseries.py"
"pandas/tests/indexes/datetimes/test_scalar_compat.py"
"pandas/tests/indexes/datetimes/test_tools.py"
"pandas/tests/indexes/interval/test_indexing.py"
"pandas/tests/indexes/interval/test_interval.py"

Ini termasuk dalam #31945

"pandas/tests/indexes/interval/test_setops.py"
"pandas/tests/indexes/multi/test_compat.py"
"pandas/tests/indexes/period/test_constructors.py"
"pandas/tests/indexes/timedeltas/test_constructors.py"
"pandas/tests/indexing/test_floats.py"

Ini termasuk dalam #31963

"pandas/tests/internals/test_internals.py"
"pandas/tests/io/excel/test_readers.py"
"pandas/tests/io/excel/test_style.py"
"pandas/tests/io/excel/test_writers.py"
"pandas/tests/io/excel/test_xlrd.py"
"pandas/tests/io/formats/test_console.py"
"pandas/tests/io/formats/test_to_html.py"
"pandas/tests/io/formats/test_to_latex.py"
"pandas/tests/io/generate_legacy_storage_files.py"

Ini termasuk dalam #31967

"pandas/tests/io/parser/test_c_parser_only.py"
"pandas/tests/io/parser/test_common.py"
"pandas/tests/io/parser/test_compression.py"
"pandas/tests/io/parser/test_encoding.py"
"pandas/tests/io/parser/test_multi_thread.py"
"pandas/tests/io/parser/test_na_values.py"
"pandas/tests/io/parser/test_parse_dates.py"
"pandas/tests/io/parser/test_read_fwf.py"
"pandas/tests/io/pytables/conftest.py"
"pandas/tests/io/pytables/test_store.py"

Ini termasuk dalam #31980

"pandas/tests/io/pytables/test_timezones.py"
"pandas/tests/io/test_html.py"
"pandas/tests/io/test_stata.py"
"pandas/tests/resample/test_period_index.py"
"pandas/tests/reshape/merge/test_join.py"
"pandas/tests/reshape/merge/test_merge.py"
"pandas/tests/reshape/merge/test_merge_asof.py"
"pandas/tests/reshape/test_melt.py"
"pandas/tests/reshape/test_pivot.py"
"pandas/tests/scalar/timedelta/test_constructors.py"

Ini termasuk dalam #31986

"pandas/tests/scalar/timestamp/test_constructors.py"
"pandas/tests/scalar/timestamp/test_rendering.py"
"pandas/tests/scalar/timestamp/test_unary_ops.py"
"pandas/tests/series/methods/test_nlargest.py"
"pandas/tests/series/test_analytics.py"
"pandas/tests/series/test_api.py"
"pandas/tests/series/test_dtypes.py"
"pandas/tests/series/test_ufunc.py"

Menambahkan permintaan tarik pertama saya dengan ini https://github.com/pandas-dev/pandas/pull/32007 :
pandas/tests/frame/test_to_csv.py

Ini termasuk dalam #32032

"pandas/tests/test_downstream.py"
"pandas/tests/test_multilevel.py"
"pandas/tests/tools/test_numeric.py"
"pandas/tests/tseries/frequencies/test_inference.py"
"pandas/tests/tslibs/test_parse_iso8601.py"
"pandas/tests/window/moments/test_moments_rolling.py"

File ini termasuk dalam #32029:

  • pandas/tests/arrays/categorical/test_analytics.py

File termasuk dalam https://github.com/pandas-dev/pandas/pull/32044

  • scripts/find_commits_touching_func.py

Ini termasuk dalam #32034

"pandas/core/array/interval.py"
"pandas/core/util/hashing.py"
"pandas/io/formats/format.py"
"pandas/io/formats/html.py"
"pandas/io/formats/latex.py"
"pandas/io/formats/printing.py"
"pandas/io/parser.py"
"pandas/tests/arrays/categorical/test_dtypes.py"
"pandas/tests/arrays/categorical/test_operators.py"

Yang ini sudah selesai...

pandas/core/ops/invalid.py
pandas/core/ops/methods.py
pandas/core/ops/roperator.py

File yang disertakan dalam #32063:

  • pandas/tests/tseries/frequencies/test_inference.py
  • pandas/tests/tslibs/test_parse_iso8601.py

Hai, saya ingin mengambil scripts/validate_docstrings.py

File termasuk dalam permintaan tarik #32189

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

Apakah masalah ini terselesaikan? Saya telah melihat file yang tidak ditandai pada daftar di bagian atas utas ini, sepertinya string .format() telah dikonversi

pandas//util/_decorators.py selesai (baris yang gagal adalah komentar)

pandas//core/indexes/base.py harus ditandai (kegagalan berasal dari komentar lagi)

Hai, saya mulai melihat pandas/core/generic.py dan segera menyadari bahwa mengubah templat string dari string yang diinterpolasi dengan % menjadi string.Template akan memerlukan perubahan di banyak tempat di mana Substitute + Appender digunakan dekorator.

Apakah Anda bertujuan untuk menghapus semua penggunaan interpolasi string % , dalam hal ini pekerjaan ini akan diperlukan, atau apakah Anda setuju dengan beberapa penggunaan interpolasi % ?

@smartvinnetou Ketika datang ke Appender dan Substitute kami sekarang mencoba menggantinya dengan dekorator doc . lihat https://github.com/pandas-dev/pandas/issues/31942

@smartvinnetou Ketika datang ke Appender dan Substitute kami sekarang mencoba menggantinya dengan dekorator doc . lihat #31942

@MomIsBestFriend apakah Anda lebih suka melewatkan peningkatan pandas/core/generic.py di tiket ini dan melakukannya di bawah #31942 ? Atau saya harus mengganti Appender dan Subtitute dekorator di generic.py dengan yang baru Anda doc dekorator di bawah tiket ini untuk menghapus tua % interpolasi?

@smartvinnetou Ketika datang ke Appender dan Substitute kami sekarang mencoba menggantinya dengan dekorator doc . lihat #31942

@MomIsBestFriend apakah Anda lebih suka melewatkan peningkatan pandas/core/generic.py di tiket ini dan melakukannya di bawah #31942 ? Atau saya harus mengganti Appender dan Subtitute dekorator di generic.py dengan yang baru Anda doc dekorator di bawah tiket ini untuk menghapus tua % interpolasi?

@smartvinnetou Di bawah # pandas/core/generic.py (Jika saya mengerti dengan benar)

Hai, menemukan cukup banyak file yang telah selesai atau tidak memerlukan perubahan, tetapi ditandai sebagai belum selesai. Hanya ingin bertanya apakah masalah ini telah terpecahkan dan secara tidak sengaja tidak ditandai atau kalian masih mengerjakannya. Jika tidak diselesaikan, saya ingin berkontribusi juga. Ini adalah beberapa file yang sudah selesai tetapi tidak ditandai

  • pandas/core/generic.py
  • pandas/core/arrays/datetimes.py
  • pandas/core/array/integer.py
  • pandas/core/array/period.py
  • pandas/core/arrays/timedeltas.py
  • pandas/core/config_init.py
  • pandas/core/dtypes/dtypes.py
  • pandas/core/frame.py

@sachinh35 Saya telah memperbarui daftar :)

Sulit untuk melacak

Terima kasih telah memperbarui daftar! @MomIsBestFriend

Saya ingin berkontribusi dengan #32939 untuk file di bawah pandas/core/ops/ . Bagaimana seharusnya menangani docstrings seperti misalnya https://github.com/pandas-dev/pandas/blob/master/pandas/core/ops/docstrings.py#L564 yang terkadang juga diimpor ke file lain? Membungkus fungsi?

aku berubah

  • pandas/core/sorting.py
  • pandas/tests/indexes/datetimes/test_date_range.py
  • pandas/tests/indexes/interval/test_interval.py
  • pandas/tests/indexing/test_coercion.py
  • pandas/tests/reshape/test_concat.py
  • pandas/util/_decorators.py

Kedua file telah dimodifikasi:
pandas/_libs/tslibs/timedeltas.pyx
pandas/_libs/tslibs/timestamps.pyx

Perhatikan bahwa tidak ada masalah pada yang berikut ini. Anda juga dapat menandai sebagai selesai:
pandas/_libs/tslibs/c_timestamp.pyx
pandas/_libs/tslibs/frequencies.pyx
pandas/_libs/tslibs/parsing.pyx
pandas/_libs/tslibs/period.pyx
pandas/_libs/tslibs/strptime.pyx

catatan: ini adalah PR pertama saya. Beri tahu saya jika ada yang perlu diperbaiki.

Saya telah membahas topik untuk memperbarui daftar + memeriksa beberapa file.

File ditandai sebagai selesai tanpa komit apa pun

(tidak perlu mengubah apa pun):

  • [x] pandas/_config/config.py
  • [x] pandas/_version.py
  • [x] pandas/compat/pickle_compat.py
  • [x] pandas/core/computation/pytables.py
  • [x] pandas/core/indexes/base.py
  • [x] pandas/core/indexes/multi.py
  • [x] pandas/core/indexes/range.py
  • [x] pandas/core/ops/__init__.py
  • [x] pandas/core/ops/docstrings.py
  • [x] pandas/core/reshape/merge.py
  • [x] pandas/core/tools/datetimes.py
  • [x] pandas/io/formats/css.py
  • [x] pandas/io/formats/excel.py
  • [x] pandas/io/formats/format.py
  • [x] pandas/io/formats/html.py
  • [x] pandas/io/formats/info.py
  • [x] pandas/io/formats/latex.py
  • [x] pandas/io/formats/printing.py
  • [x] pandas/io/formats/style.py
  • [x] pandas/io/parsers.py
  • [x] pandas/io/pytables.py
  • [x] pandas/io/sas/sas_xport.py
  • [x] pandas/io/stata.py
  • [x] pandas/tests/arrays/categorical/test_operators.py
  • [x] pandas/tests/arrays/test_datetimelike.py
  • [x] pandas/tests/dtypes/test_dtypes.py
  • [x] pandas/tests/extension/base/setitem.py
  • [x] pandas/tests/frame/test_constructors.py
  • [x] pandas/tests/frame/test_missing.py
  • [x] pandas/tests/frame/test_to_csv.py
  • [x] pandas/tests/groupby/aggregate/test_other.py
  • [x] pandas/tests/indexes/datetimes/test_datetime.py
  • [x] pandas/tests/indexes/datetimes/test_formats.py
  • [x] pandas/tests/indexes/datetimes/test_partial_slicing.py
  • [x] pandas/tests/indexes/interval/test_constructors.py
  • [x] pandas/tests/indexes/multi/test_format.py
  • [x] pandas/tests/indexes/period/test_formats.py
  • [x] pandas/tests/indexes/timedeltas/test_timedelta.py
  • [x] pandas/tests/indexing/test_categorical.py
  • [x] pandas/tests/io/excel/test_openpyxl.py
  • [x] pandas/tests/io/excel/test_writers.py
  • [x] pandas/tests/io/formats/test_format.py
  • [x] pandas/tests/io/formats/test_printing.py
  • [x] pandas/tests/io/formats/test_style.py
  • [x] pandas/tests/io/formats/test_to_csv.py
  • [x] pandas/tests/io/formats/test_to_html.py
  • [x] pandas/tests/io/formats/test_to_latex.py

File yang tersisa untuk diperiksa:

  • [ ] pandas/core/arrays/datetimelike.py
  • [ ] pandas/tests/io/parser/test_compression.py
  • [ ] pandas/tests/io/parser/test_encoding.py
  • [ ] pandas/tests/io/parser/test_header.py
  • [ ] pandas/tests/io/parser/test_parse_dates.py
  • [ ] pandas/tests/io/parser/test_usecols.py
  • [ ] pandas/tests/io/test_html.py
  • [ ] pandas/tests/io/test_sql.py
  • [ ] pandas/tests/io/test_stata.py
  • [ ] pandas/tests/reductions/test_reductions.py
  • [ ] pandas/tests/reshape/test_melt.py
  • [ ] pandas/tests/scalar/period/test_period.py
  • [ ] pandas/tests/scalar/timedelta/test_timedelta.py
  • [ ] pandas/tests/scalar/timestamp/test_constructors.py
  • [ ] pandas/tests/series/indexing/test_numeric.py
  • [ ] pandas/tests/series/indexing/test_take.py
  • [ ] pandas/tests/series/indexing/test_where.py
  • [ ] pandas/tests/series/methods/test_rename.py
  • [ ] pandas/tests/series/test_api.py
  • [ ] pandas/tests/series/test_constructors.py
  • [ ] pandas/tests/series/test_datetime_values.py
  • [ ] pandas/tests/series/test_repr.py
  • [ ] pandas/tests/test_strings.py
  • [ ] pandas/tests/tools/test_to_datetime.py
  • [ ] pandas/tests/tseries/holiday/test_calendar.py
  • [ ] pandas/tests/tseries/holiday/test_holiday.py
  • [ ] pandas/tests/tslibs/test_parsing.py
  • [ ] pandas/tests/util/test_assert_frame_equal.py
  • [ ] pandas/tseries/frequencies.py
  • [ ] pandas/util/_test_decorators.py
  • [ ] pandas/util/_validators.py

Saya mengurus pandas/util/_validators.py . Banyak dari file lain ini juga tampak baik-baik saja bagi saya.

  • [x] pandas/util/_test_decorators.py
  • [x] pandas/tseries/frequencies.py
  • [x] pandas/tests/util/test_assert_frame_equal.py
  • [x] pandas/tests/tslibs/test_parsing.py
  • [x] pandas/tests/tseries/holiday/test_holiday.py
  • [x] pandas/tests/tseries/holiday/test_calendar.py
  • [x] pandas/tests/tools/test_to_datetime.py
  • [x] pandas/tests/test_strings.py
  • [x] pandas/tests/series/test_repr.py
  • [x] pandas/tests/series/test_datetime_values.py
  • [x] pandas/tests/series/test_constructors.py
  • [x] pandas/tests/series/test_api.py

Hai Matteo,
Saya tertarik untuk membantu upaya ini, tetapi saya baru mengenal git and
berkontribusi pada panda. Apakah Anda mungkin bisa memandu saya melewati
Langkah ? Mungkin saya dapat menyiapkan berbagi layar minggu ini?

Terima kasih,
Andrew

Pada Selasa, 26 Mei 2020, 15:12 Matteo Santamaria [email protected]
menulis:

Saya menangani pandas/util/_validators.py. Banyak dari file lain ini
sudah tampak ok untuk saya juga.

  • pandas/util/_test_decorators.py
  • pandas/tseries/frequencies.py
  • pandas/tests/util/test_assert_frame_equal.py
  • pandas/tests/tslibs/test_parsing.py
  • pandas/tests/tseries/holiday/test_holiday.py
  • pandas/tests/tseries/holiday/test_calendar.py
  • pandas/tests/tools/test_to_datetime.py
  • pandas/tests/test_strings.py
  • pandas/tests/series/test_repr.py
  • pandas/tests/series/test_datetime_values.py
  • pandas/tests/series/test_constructors.py
  • pandas/tests/series/test_api.py


Anda menerima ini karena Anda berlangganan utas ini.
Balas email ini secara langsung, lihat di GitHub
https://github.com/pandas-dev/pandas/issues/29547#issuecomment-634307953 ,
atau berhenti berlangganan
https://github.com/notifications/unsubscribe-auth/APG73XKAUDLFVVQXUS2SJETRTQ5DDANCNFSM4JLZCU5Q
.

Hai @warden706 , sebenarnya saya juga cukup baru di sini, jadi tidak banyak yang bisa saya tunjukkan. Saya menemukan sumber daya ini sangat membantu karena saya tersandung, Anda harus memeriksanya.

Hai,
cukup baru untuk berkontribusi juga di sini. aku sedang menjaga

  • [x] pandas/tests/io/parser/test_header.py
  • [x] pandas/tests/io/test_sql.py
  • [x] pandas/tests/io/test_html.py
  • [x] pandas/tests/reductions/test_reductions.py
  • [x] pandas/tests/reshape/test_melt.py
  • [x] pandas/tests/scalar/timedelta/test_timedelta.py

Saya memeriksa file-file lain ini dan tampak baik-baik saja bagi saya

  • [X] pandas/tests/io/parser/test_compression.py
  • [X] pandas/tests/io/parser/test_encoding.py
  • [X] pandas/tests/io/parser/test_parse_dates.py
  • [X] pandas/tests/io/parser/test_usecols.py
  • [X] pandas/tests/io/test_stata.py
  • [X] pandas/tests/scalar/period/test_period.py
  • [X] pandas/tests/scalar/timestamp/test_constructors.py

saya juga baru disini.
saya akan mengambil

  • [ ] pandas/tests/series/indexing/test_numeric.py
  • [ ] pandas/tests/series/indexing/test_take.py
  • [ ] pandas/tests/series/indexing/test_where.py

saya punya pertanyaan tentang perubahan kode.
misalnya, di pandas/tests/series/indexing/test_take.py, potongan kode:

 msg = "index {} is out of bounds for( axis 0 with)? size 5"
 with pytest.raises(IndexError, match=msg.format(10)):
     ser.take([1, 10])

jadi saran saya adalah menggantinya ke:

msg = lambda x: f"index {x} is out of bounds for( axis 0 with)? size 5"
with pytest.raises(IndexError, match=msg(10)):
    ser.take([1, 10])

apakah itu cukup baik?

Hai,
Saya ingin membuat PR, jadi saya menjalankan tes, tetapi saya mengalami beberapa kegagalan. Jadi saya mencoba menjalankan tes juga pada master.
Apakah normal menjalankan pytest pandas pada master bercabang yang tidak diedit menghasilkan beberapa kegagalan?

Guru umumnya harus lulus tes. Pastikan Anda telah menarik komit terbaru. Tes mana yang gagal?

@matteosantama Saya menarik komit terakhir, menginstal ulang lingkungan dan menjalankan kembali tes dengan pytest pandas . Ini adalah hasilnya

================= short test summary info =================
FAILED pandas/tests/io/test_parquet.py::TestParquetFastParquet::test_s3_roundtrip - ValueError: Invalid timestamp "Ven, 29 Mag 2020 07:59:19 GMT": Unknown string format: Ven, 29 Mag 2020 07:59:19 GMT
FAILED pandas/tests/plotting/test_datetimelike.py::TestTSPlot::test_ts_plot_with_tz['UTC'] - AttributeError: 'numpy.datetime64' object has no attribute 'hour'
================= 2 failed, 87804 passed, 1185 skipped, 1005 xfailed, 5637 warnings in 2437.06s (0:40:37) =================

Saya perhatikan bahwa jika saya menjalankan tes hanya pada direktori tunggal (misalnya dengan pytest pandas/tests/io ), tidak ada kegagalan:

 7273 passed, 344 skipped, 53 xfailed, 5584 warnings in 351.76s (0:05:51) 

Sejak komentar @OlivierLuG , sepertinya hampir semua file telah diperbaiki atau sudah baik-baik saja tanpa modifikasi apa pun. Saya akan mencoba memperbarui daftar tentang file "masih terbuka".

dikoreksi

  • [X] pandas/util/_validators.py
  • [X] pandas/tests/io/parser/test_header.py
  • [X] pandas/tests/io/test_sql.py
  • [X] pandas/tests/reductions/test_reductions.py

Tidak perlu modifikasi

  • [X] pandas/util/_test_decorators.py
  • [X] pandas/tseries/frequencies.py
  • [X] pandas/tests/util/test_assert_frame_equal.py
  • [X] pandas/tests/tslibs/test_parsing.py
  • [X] pandas/tests/tseries/holiday/test_holiday.py
  • [X] pandas/tests/tseries/holiday/test_calendar.py
  • [X] pandas/tests/tools/test_to_datetime.py
  • [X] pandas/tests/test_strings.py
  • [X] pandas/tests/series/test_repr.py
  • [X] pandas/tests/series/test_datetime_values.py
  • [X] pandas/tests/series/test_constructors.py
  • [X] pandas/tests/series/test_api.py
  • [X] pandas/tests/io/parser/test_compression.py
  • [X] pandas/tests/io/parser/test_encoding.py
  • [X] pandas/tests/io/parser/test_parse_dates.py
  • [X] pandas/tests/io/parser/test_usecols.py
  • [X] pandas/tests/io/test_stata.py
  • [X] pandas/tests/scalar/period/test_period.py
  • [X] pandas/tests/scalar/timestamp/test_constructors.py
  • [X] pandas/tests/io/test_html.py
  • [X] pandas/tests/reshape/test_melt.py
  • [X] pandas/tests/scalar/timedelta/test_timedelta.py

Selain itu, saya pikir ini juga sudah ok

  • [X] pandas/core/arrays/datetimelike.py
  • [X] pandas/tests/series/methods/test_rename.py

Masih untuk memeriksa/memperbaiki

  • [x] pandas/tests/series/indexing/test_numeric.py
  • [x] pandas/tests/series/indexing/test_take.py
  • [x] pandas/tests/series/indexing/test_where.py

@DanBasson apakah Anda memiliki pembaruan?

saya terus mendapatkan kesalahan yang saya tidak tahu apa artinya.
bantuan apa pun akan dihargai

Sudahkah Anda mencoba mengambil modifikasi terbaru di master? Mungkin itu akan memperbaiki beberapa tes yang gagal.

itu tidak membantu.
kalo ada yang mau ambil juga boleh

Saya ragu: ketika kita memiliki situasi seperti di pandas/tests/reshape/test_melt.py :

msg = "The following '{Var}' are not present in the DataFrame: {Col}"
...
with pytest.raises(KeyError, match=msg.format(Var="value_vars", Col="\\['C'\\]")):
...
with pytest.raises(KeyError, match=msg.format(Var="id_vars", Col="\\['A'\\]")):
...

dan seterusnya, haruskah kita mengubah msg menjadi suatu fungsi dan memanggilnya dengan nilai "Col" yang berbeda? Atau lebih baik membiarkannya apa adanya?

@MatteoFelici terima kasih untuk daftar yang diperbarui itu. Saya memeriksa beberapa modul terakhir yang tersisa yang Anda panggil dan ini terlihat baik-baik saja, jadi saya pikir kami dapat menyelesaikan masalah ini

Apakah halaman ini membantu?
0 / 5 - 0 peringkat