Pandas: Ersetzen Sie die alte Zeichenfolgenformatierungssyntax durch f-Zeichenfolgen

Erstellt am 11. Nov. 2019  ·  137Kommentare  ·  Quelle: pandas-dev/pandas

Da wir Python 3.5 nicht mehr unterstützen, können wir jetzt die neuen f-Strings anstelle der alten .format() (und natürlich die % Formatierung) verwenden.

Anmerkungen:

  • Vergessen Sie nicht, dieses Problem in der Hauptnachricht Ihres Pull-Requests zu verlinken, fügen Sie einfach dieses https://github.com/pandas-dev/pandas/issues/29547 in die Textnachricht Ihres Pull-Requests ein.

  • Wenn sich eine Ihrer geänderten Dateien auf #29886 bezieht, stellen Sie bitte sicher, dass Sie Ihren Pull-Request auch mit diesem Problem verknüpfen, und fügen Sie diese https://github.com/pandas-dev/pandas/issues/29886 einfach auch in die Textnachricht Ihres Pull-Requests ein.

  • Bitte kommentieren Sie, woran Sie arbeiten möchten, damit wir keine Doppelarbeit machen.

  • Wenn eine Datei/Dateien, die als erledigt markiert werden sollen, nicht markiert sind, teilen Sie mir dies bitte mit.


Um zu überprüfen, welche Dateien im Verzeichnis pandas repariert werden müssen:

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

Alle oben genannten können auch als Einzeiler verwendet werden:

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

Wenn Sie die Zeilennummer des Vorkommens sehen möchten, ersetzen Sie -l durch -n
zum Beispiel:

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

Die aktuelle Liste lautet:

  • [ ] 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/skalar/period/test_period.py

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

  • [ ] pandas/tests/skalar/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


HINWEIS:

Die Liste kann sich ändern, wenn Dateien ständig verschoben/umbenannt werden.


Vererbte Dateien und Befehle von diesem PR .

Style good first issue

Hilfreichster Kommentar

Meine erste Pull-Anfrage mit diesem https://github.com/pandas-dev/pandas/pull/32007 hinzugefügt:
pandas/tests/frame/test_to_csv.py

Alle 137 Kommentare

Ich nehme:

  • [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

Ich werde nehmen:

  • [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

zu starten, wenn das in Ordnung ist!

Hallo @MomIsBestFriend Können Sie Tools für diese Konvertierung empfehlen? Ein kurzer Blick gab mir diese:

  1. pyupgrade
  2. fstringify
  3. fliegen

Ich habe mit beiden keine Erfahrung, aber sie könnten hier sehr hilfreich sein

Hallo @SaturnFromTitan , ich persönlich verwende manchmal pyupgrade, aber nur, wenn die Datei nur ein paar veraltete Zeichenfolgenformate enthält. Dann schaue ich mir die Änderungen an und behebe, wenn

Wenn es sich um Dateien mit vielen Vorkommnissen handelt, gehe ich manuell für die "komplexen" (zB '%.2f' % my_float ) und lasse es mit den gewöhnlichen umgehen, normalerweise wird es richtig.

Außerdem machen einige der Änderungen die geänderte Datei nicht pep8-kompatibel, daher muss auch dies behoben werden, da sie andernfalls die Tests nicht besteht.

Werde als nächstes nehmen:

  • [x] pandas/compat/__init__.py

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

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

  • [x] pandas/compat/_optional.py

Ich werde nehmen:

  • [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

Was halten alle davon, dies als good first issue zu markieren? Es sollte für die meisten Dateien hier gelten. Die Änderungen, die vorgenommen werden müssen, sind normalerweise nur wenige Zeilen oder so pro Datei, und wer auch immer die Änderungen vornimmt, muss sich nicht allzu viele Gedanken über die Auswirkungen auf andere Teile des Codes machen (da die ausgeführte Endfunktion dieselbe ist).

Ich stelle mir ein Setup ähnlich wie #28926 vor.

f-String-Ersetzung platziert auf:

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

Nr. #29701

Werde als nächstes nehmen:

  • [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

Ich werde nehmen

  • [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

Nr. #29781

Ich werde nehmen:

  • [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

Was halten alle davon, dies als good first issue zu markieren? Es sollte für die meisten Dateien hier gelten. Die Änderungen, die vorgenommen werden müssen, sind normalerweise nur wenige Zeilen oder so pro Datei, und wer auch immer die Änderungen vornimmt, muss sich nicht allzu viele Gedanken über die Auswirkungen auf andere Teile des Codes machen (da die ausgeführte Endfunktion dieselbe ist).

Ich stelle mir ein Setup ähnlich wie #28926 vor.

Klar bin ich entsprechend gekennzeichnet. Danke

Als nächstes nehmen:

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

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

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

Tut mir leid, ich habe gerade bemerkt, dass Sie gebeten haben, anzugeben, an welchen Dateien gearbeitet werden soll. habe ich gerade benutzt

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

Um alte Formatierungen zu finden. Ich entschuldige mich

Tut mir leid, ich habe gerade bemerkt, dass Sie gebeten haben, anzugeben, an welchen Dateien gearbeitet werden soll. habe ich gerade benutzt

@ForTimeBeing Deshalb habe ich den Beitrag bearbeitet,

kannst du posten, woran du gearbeitet hast? nur für den Fall, dass jemand die Kommentare durchsucht.

Sicher, ich nahm;

  • [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/skalar/test_nat.py
  • [x] pandas/tests/tseries/offsets/common.py

und unter

  • [x] pandas/tseries/frequencies.py

.format existiert noch und wird in der grep-Suche angezeigt, aber es gibt keine Literale, die in fstring geändert werden können. Ich bin mir nicht sicher, ob es eine andere Möglichkeit gibt, dies zu tun oder wie es ist, aber alle Literale werden jetzt in dieser Datei in fstring getauscht.

.format existiert noch und wird in der grep-Suche angezeigt, aber es gibt keine Literale, die in fstring geändert werden können. Ich bin mir nicht sicher, ob es eine andere Möglichkeit gibt, dies zu tun oder wie es ist, aber alle Literale werden jetzt in dieser Datei in fstring getauscht.

@Für vorerst
Keine Probleme:)
danke für die PN :)

ich nahm

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

Nr. #29952

Ich werde nehmen:

  • [x] ci/print_skipped.py

  • [x] doc/make.py

  • [x] doc/sphinxext/announce.py

  • [x] doc/sphinxext/contributors.py

Arbeitet an: 'pandas/core/dtypes/dtypes.py'

Nahm:

  • [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

Ich werde nehmen:

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

Ich habe ein Problem mit vordefinierten Zeichenfolgen. Ich habe die Lösung gefunden, bin mir aber nicht sicher, ob es die richtige ist.
Stellen Sie sich die Situation vor, in der Sie eine vordefinierte Zeichenfolge wie folgt haben:
THE_MESSAGE = "Nachricht mit Argumenten. Arg1: {arg1}, Arg2: {arg2}."
Was mit .format() aufgerufen wird wie:
THE_MESSAGE.format(arg1_str, arg2_str).

Könnte ich dies umschreiben, indem ich die Lambda-Funktion wie unten beschrieben verwende?
THE_MESSAGE = lambda arg1, arg2: f"Nachricht mit Argumenten. Arg1: {arg1}, Arg2: {arg2}."

und nenn es bei
THE_MESSAGE(arg1_str, arg2_str)?

Ich weiß, dass das funktionieren würde, ich bin mir nicht sicher, ob es der beste Weg ist, dieses Problem anzugehen :)

Ich habe ein Problem mit vordefinierten Zeichenfolgen.

Ich verstehe vollkommen, wie pep 498 erklärt:

Reguläre Strings werden zur Kompilierzeit verkettet und F-Strings werden zur Laufzeit verkettet.

Wir müssen uns eine Möglichkeit ausdenken, die Verwendung von .format() zu entfernen und etwas anderes, eine Zeichenfolgenvorlage, zu verwenden.

Das einzige, was mir im Moment einfällt, ist string.Template von stdlib, aber ich weiß es wirklich nicht.

@jbrockmendel Kannst du uns helfen?

@MomIsBestFriend findest du, dass die Lambda-Funktion dafür ein Overkill ist?

@MomIsBestFriend Ich denke, dies könnte ein Fall sein, in dem das Leben mit ein paar .format s der richtige Weg ist

@MomIsBestFriend findest du, dass die Lambda-Funktion dafür ein Overkill ist?

Ich bin kein Experte, bitte fragen Sie einen der Entwickler.

nahm

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

ref #30120

nahm

  • [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

Nr. 30121

nahm

  • [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

Nr. 30124

Ich werde nehmen

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

Bearbeiten:
Einnahme:

  • [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

Ich werde nehmen

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

Danke!

Ich werde nehmen:

pandas/tests/plotting/test_converter.py

pandas/tests/plotting/test_datetimelike.py

pandas/tests/plotting/test_series.py

Ich werde nehmen

  • [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

Hallo, @MomIsBestFriend

pandas/tests/plotting/test_converter.py

pandas/tests/plotting/test_datetimelike.py

pandas/tests/plotting/test_series.py

Sind abgeschlossen. Dankeschön.

Hallo
Ich kann ... nehmen

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

Vielen Dank

Hallo, ich nehme

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

Vielen Dank!

Ich nahm:

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

Link zu meiner PR: https://github.com/pandas-dev/pandas/pull/30278

Ich werde arbeiten an:

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

Hier wegen des Tags "gute Erstausgabe"

Ich werde nehmen:

  • [ ] pandas/io/sql.py

  • [ ] pandas/io/stata.py

Vielen Dank!

Ich werde tun:

  • [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

Ich hätte gerne
Ich habe gerade einen Pull-Request dazu gemacht

  • [x] pandas/core/indexers.pyz

Super, wollte schon immer mal bei Pandas mitmachen. Wird aktualisiert, wenn ich weiß, was ich in den nächsten Wochen erfüllen kann...

Ich kann ... nehmen
pandas/_version.py

Aufspringen:

  • [ ] 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

Ich nehme pandas/io/formats/csvs.py

Ich nehme:

  • [x] pandas/core/series.py (keine altmodischen String-Methoden im Code, nur die Dokumentation)
  • [x] pandas/core/tools/datetimes.py (geänderter Code, testet und stellt Pullrequest vor dem 25. Dezember)

Frage: Gibt es eine Antwort darauf, ob die Zeichenfolgenformatierung der alten Schule in der API-Referenz verbleiben sollte?

Zum Beispiel in 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

Wenn Sie dies durch ein f-String-Beispiel ersetzen, wird Folgendes erzwungen:

      >>> 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

Was kein exakter Ersatz ist (f-string ist keine Funktion, ich verwende das Lambda, um es zu einer Funktion zu machen, die den Nettoeffekt von 'I am a'.format() repliziert) und wirft einige heikle Probleme beim Putten auf einige nicht-best-practices in der Dokumentation.

Im Moment erwäge ich, die Dokumentation als außerhalb des Geltungsbereichs zu ändern, bis die Community-Entscheidung über den Umgang mit Fällen wie diesem aussteht.

Bereits erledigt (nicht sicher von wem):
pandas/tests/arrays/interval/test_ops.py

ich nehme auch

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

Frage: Gibt es eine Antwort darauf, ob die Zeichenfolgenformatierung der alten Schule in der API-Referenz verbleiben sollte?

cc @WillAyd @jreback

Ich weiß nicht, was Sie für das "Old-School-String-Format" halten, aber .format wird einige Anwendungsfälle haben, die f-Strings nicht abdecken (nämlich verzögerte Parametrisierung), so dass es sicher immer noch geben wird . Ich denke jedoch, dass wir nirgendwo die Syntax des Py27-String-Formats haben sollten

Ich nehme:

  • [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

Ich werde nehmen

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

In #30601 habe ich es übernommen

  • [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

Ich kann die beiden folgenden Dateien für den Anfang nehmen, wenn das in Ordnung ist!

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

Diese Änderungen wurden in #30604 vorgenommen

Annahme:

  • [ ] 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

Gibt es eine bevorzugte Möglichkeit, alte beabsichtigte Verwendungen von .format zu notieren, die in PRs unverändert belassen werden? Wenn (fälschlicherweise) angenommen wird, dass etwas ein guter Anwendungsfall ist und in der PR übersehen wird

Arbeiten an

  • [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

Ich werde nehmen

  • [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

Ich möchte versuchen und nehmen:

  • [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

Ich hätte gerne:

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

Danke @HH-MWB

Ich werde nehmen:

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

Ich habe viel Code in @Appender() , der % um die Zeichenfolge zu formatieren. Dieser Code verwendet _shared_docs als Vorlage, die meistens in /pandas/core/generic.py definiert ist und über mehrere Dateien hinweg verwendet wurde.

Ich möchte alle _shared_docs relevanten Formatierungen ersetzen. Durch diese Änderung müssen viele Dateien geändert werden, aber ich kann nicht alle anderen Zeichenfolgenformatierungssyntax in diesen Dateien überprüfen.

Hört sich das gut an? Sollte ich es tun? @datapythonista @MomIsBestFriend

Ich habe viel Code in @Appender() , der % um die Zeichenfolge zu formatieren. Dieser Code verwendet _shared_docs als Vorlage, die meistens in /pandas/core/generic.py definiert ist und über mehrere Dateien hinweg verwendet wurde.

Ich möchte alle _shared_docs relevanten Formatierungen ersetzen. Durch diese Änderung müssen viele Dateien geändert werden, aber ich kann nicht alle anderen Zeichenfolgenformatierungssyntax in diesen Dateien überprüfen.

Hört sich das gut an? Sollte ich es tun? @datapythonista @MomIsBestFriend

@HH-MWB Ich habe dazu nicht wirklich ein Mitspracherecht, ich denke, jreback und WillAyd und datapythonista (Nicht taggen, weil ich sie nicht stören möchte), können dir mehr helfen als ich kann :)

Was versuchst du durch Appender zu ersetzen? Ich glaube nicht, dass es F-Saiten sein können

Wäre in Ordnung, wenn .format die Py27-Syntax ersetzt, aber es lohnt sich wahrscheinlich, ein separates Thema zu eröffnen, um es zu diskutieren

Was versuchst du durch Appender zu ersetzen? Ich glaube nicht, dass es F-Saiten sein können

Wäre in Ordnung, wenn .format die Py27-Syntax ersetzt, aber es lohnt sich wahrscheinlich, ein separates Thema zu eröffnen, um es zu diskutieren

@WillAyd Ich denke, dass string.Template von stdlib die richtige Methode dafür ist.
Irgendwelche Gedanken?

Hallo @WillAyd , tut mir leid, dass ich es nicht klar gemacht habe. Ja, meine ursprüngliche Idee war, % durch .format ersetzen und auch Code wie %(XXX)s durch {XXX} in der _shared_docs Vorlage zu ersetzen. Wie @MomIsBestFriend sagte, wäre string.Template eine andere Wahl.

Ich habe ein separates Thema für weitere Diskussionen geöffnet. Vielen Dank!

Annahme:

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

Nr. #31412

@MomIsBestFriend Hallo! Zum ersten Mal Open-Source-Mitwirkender hier! Ich freue mich sehr auf meine erste PR! Ich werde versuchen, an den folgenden Dateien zu arbeiten:
versioneer.py
web/pandas_web.py
Vielen Dank!!

@drewseibert versioneer.py wird verkauft, daher möchten wir es nicht bearbeiten @MomIsBestFriend können Sie dies aus der Liste entfernen, um diese Verwirrung zu vermeiden

@jbrockmendel Danke für den

Außerdem erhalte ich einen 403-Berechtigungsfehler, wenn ich versuche, einen Commit zu pushen. Ich habe einen SSH-Schlüssel hinzugefügt und versucht, die Remote-URL festzulegen. Funktioniert bei mir nicht, egal ob ich mit SSH oder HTTPS klone. Jede Hilfe wird geschätzt! Vielen Dank!

@MomIsBestFriend Hallo! Zum ersten Mal Open-Source-Mitwirkender hier! Ich freue mich sehr auf meine erste PR! Ich werde versuchen, an den folgenden Dateien zu arbeiten:
versioneer.py
web/pandas_web.py
Vielen Dank!!

Viel Glück @drewseibert

Ich werde nehmen:

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

Arbeite jetzt an diesem:

pandas/tests/io/test_pickle.py

Hi
Ich werde nehmen

pandas/util/_print_versions.py

pandas/util/_test_decorators.py

https://github.com/pandas-dev/pandas/pull/31628 sollte in Ordnung sein :)

Ich nehme pandas/tests/frame/test_repr_info.py

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

Hey, ich nehme

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

Folgende Dateien können in der Liste abgehakt werden...
web/pandas_web.py
pandas/tests/io/test_pickle.py

Vielen Dank!

Ein weiterer zum Abhaken.. keine F-Strings in der Datei erforderlich:
pandas/tests/series/indexing/test_boolean.py

Daran werde ich jetzt arbeiten...

pandas/tests/series/indexing/test_indexing.py

Danke @drewseibert

Gibt es hier noch Arbeit? Ich möchte beitragen

@3vts Ja, natürlich :)

Ich denke du kannst nehmen

pandas/tests/util/test_assert_extension_array_equal.py


LMK, wenn Sie mehr wollen.

Etwas, bei dem ich helfen kann! Es wird mein erster Open-Source-Beitrag sein, daher benötige ich möglicherweise etwas Hilfe. Ich habe einige gelesen, wie man Artikel beisteuert, aber trotzdem.

Mit welchen soll ich umgehen?

@MomIsBestFriend scheint, als ob pandas/tests/util/test_assert_extension_array_equal.py auf PR #30816 behoben wurde, außerdem habe ich die Umgebung bereits eingerichtet. Können Sie mir eine Last geben, mit der ich arbeiten kann?

@3vts @GrizzledLabs - nimm eine der Dateien, die noch nicht in der obigen Liste gemacht wurden (und überprüfe, dass niemand sonst daran arbeitet) - dann kommentiere hier, woran du gerade arbeitest! Vielen Dank !

pandas/core/arrays/boolean.py scheint bereits fertig zu sein. Ich habe einen f'string und kein .format() gesehen, es sei denn, ich habe es verpasst.

pandas/core/dtypes/common.py scheint auch schon fertig zu sein. f'strings aber kein .format()

Beziehen sich einige dieser Fixes auf mehrere Dateien? Einige enthalten kein einzelnes .format(), und ich frage mich, ob es zwischen Dateien Funktionen gibt, die aufgerufen werden? Würde ein einzelner Fix das Ändern mehrerer Dateien erfordern?

Hallo, Erstmals Mitwirkender hier! Aufgeregt loszulegen!
Ursprünglich wollte ich diese nehmen:

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

aber dann habe ich gesehen, dass es fertig und zusammengeführt wurde, @MomIsBestFriend können Sie bitte die Liste oben aktualisieren, um sie als erledigt

Ich werde diese nehmen:

  • [ ] 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 Bei der Überprüfung des Threads, den ich gefunden habe, gibt es eine Ausnahme für die vordefinierten Zeichenfolgen. Gilt das noch? Oder haben wir jetzt. eine Problemumgehung?

Ich habe ein Problem mit vordefinierten Zeichenfolgen.

Ich verstehe vollkommen, wie pep 498 erklärt:

Reguläre Strings werden zur Kompilierzeit verkettet und F-Strings werden zur Laufzeit verkettet.

Wir müssen uns eine Möglichkeit ausdenken, die Verwendung von .format() zu entfernen und etwas anderes, eine Zeichenfolgenvorlage, zu verwenden.

Das einzige, was mir im Moment einfällt, ist string.Template von stdlib, aber ich weiß es wirklich nicht.

@jbrockmendel Kannst du uns helfen?

Hallo, Erstautor 👋 . Ich werde nehmen:

  • [ 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 , ich würde mit nur einer Datei beginnen, und sobald Ihr Pull-Request zusammengeführt ist, können Sie mit dem Rest fortfahren. Der erste Beitrag ist meist kniffliger als gedacht und für uns (Rezensenten) hilft es meist auch, wenn Pull Requests klein sind. Speziell für neue Mitwirkende, bei denen möglicherweise mehr Feedback benötigt wird.

Diese beiden Dateien können von der Liste abgehakt werden:
👍
pandas/io/parsers.py
pandas/io/pytables.py

Diese sind auch gut zu gehen:

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

Diese sind fertig auf #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"

Ich nehme "pandas/io/sas/sas_xport.py".

Diese sind fertig auf #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"

Diese sind in #31945 enthalten

"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"

Diese sind in #31963 enthalten

"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"

Diese sind in #31967 enthalten

"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"

Diese sind in #31980 enthalten

"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/skalar/timedelta/test_constructors.py"

Diese sind in #31986 enthalten

"pandas/tests/skalar/timestamp/test_constructors.py"
"pandas/tests/skalar/timestamp/test_rendering.py"
"pandas/tests/skalar/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"

Meine erste Pull-Anfrage mit diesem https://github.com/pandas-dev/pandas/pull/32007 hinzugefügt:
pandas/tests/frame/test_to_csv.py

Diese sind in #32032 enthalten

"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"

Diese Datei ist in #32029 enthalten:

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

Datei enthalten in https://github.com/pandas-dev/pandas/pull/32044

  • scripts/find_commits_touching_func.py

Diese sind in #32034 enthalten

"pandas/core/arrays/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/parsers.py"
"pandas/tests/arrays/categorical/test_dtypes.py"
"pandas/tests/arrays/categorical/test_operators.py"

Diese sind fertig...

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

In #32063 enthaltene Dateien:

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

Hallo, ich möchte scripts/validate_docstrings.py

Im Pull-Request enthaltene Datei #32189

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

Ist dieses Problem gelöst? Ich habe mir Dateien angesehen, die in der Liste oben in diesem Thread nicht markiert sind. Es scheint, als wären die .format()-Strings konvertiert worden

pandas//util/_decorators.py ist fertig (die fehlgeschlagene Zeile ist ein Kommentar)

pandas//core/indexes/base.py sollte markiert werden (Fehler ist wieder von einem Kommentar)

Hallo, ich habe mir pandas/core/generic.py angesehen und schnell festgestellt, dass das Ändern der String-Vorlagen von einem mit % interpolierten String zu einem string.Template an vielen Stellen Änderungen erfordert, an denen Substitute + Appender Dekoratoren werden verwendet.

Wollen Sie die Verwendung von % String-Interpolation entfernen, in welchem ​​Fall diese Arbeit notwendig ist, oder sind Sie mit der Verwendung von % Interpolation einverstanden?

@smartvinnetou Wenn es um Appender und Substitute geht, versuchen wir jetzt, diese durch den doc Dekorator zu ersetzen. siehe https://github.com/pandas-dev/pandas/issues/31942

@smartvinnetou Wenn es um Appender und Substitute geht, versuchen wir jetzt, diese durch den doc Dekorator zu ersetzen. siehe #31942

@MomIsBestFriend möchten Sie das Upgrade von pandas/core/generic.py in diesem Ticket lieber überspringen und es unter #31942 tun? Oder sollte ich Appender und Subtitute Dekoratoren in generic.py durch Ihren neuen doc Dekorator unter diesem Ticket ersetzen, um die alte % Interpolation zu entfernen?

@smartvinnetou Wenn es um Appender und Substitute geht, versuchen wir jetzt, diese durch den doc Dekorator zu ersetzen. siehe #31942

@MomIsBestFriend möchten Sie das Upgrade von pandas/core/generic.py in diesem Ticket lieber überspringen und es unter #31942 tun? Oder sollte ich Appender und Subtitute Dekoratoren in generic.py durch Ihren neuen doc Dekorator unter diesem Ticket ersetzen, um die alte % Interpolation zu entfernen?

@smartvinnetou Unter #31942 im Fall von pandas/core/generic.py (Wenn ich das richtig verstanden habe)

Hallo, habe ziemlich viele Dateien gefunden, die entweder erledigt wurden oder keine Änderungen erforderten, aber als nicht erledigt markiert wurden. Wollte nur fragen, ob dieses Problem gelöst und versehentlich nicht markiert wurde oder ihr noch daran arbeitet. Wenn es nicht gelöst ist, möchte ich auch dazu beitragen. Dies waren einige der Dateien, die erstellt, aber nicht markiert wurden

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

@sachinh35 Ich habe die Liste aktualisiert :)

Es wurde schwer den Überblick zu behalten

Danke für die Aktualisierung der Liste! @MomIsBestFriend

Ich möchte mit #32939 für Dateien unter pandas/core/ops/ beitragen. Wie soll man mit den Docstrings wie zB https://github.com/pandas-dev/pandas/blob/master/pandas/core/ops/docstrings.py#L564 umgehen, die manchmal auch in andere Dateien importiert werden? Einpacken in Funktionen?

ich habe mich verändert

  • 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

Die beiden Dateien wurden geändert:
pandas/_libs/tslibs/timedeltas.pyx
pandas/_libs/tslibs/timestamps.pyx

Beachten Sie, dass bei den folgenden keine Probleme aufgetreten sind. Sie können auch als erledigt markieren:
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

Hinweis: Dies ist meine erste PR überhaupt. Lassen Sie mich wissen, wenn etwas verbessert werden muss.

Ich bin das Thema durchgegangen, um die Liste zu aktualisieren und einige Dateien zu überprüfen.

Dateien, die ohne Commit als erledigt markiert wurden

(da muss nichts geändert werden):

  • [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

Verbleibende Dateien zu überprüfen:

  • [ ] 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/skalar/period/test_period.py
  • [ ] pandas/tests/skalar/timedelta/test_timedelta.py
  • [ ] pandas/tests/skalar/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

Ich habe mich um pandas/util/_validators.py gekümmert. Viele dieser anderen Dateien scheinen mir auch schon in Ordnung zu sein.

  • [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

Hallo Matteo,
Ich bin daran interessiert, bei diesen Bemühungen zu helfen, bin aber neu bei Git und
zu Pandas beitragen. Könntest du mich vielleicht durch die
Schritte ? Vielleicht kann ich diese Woche eine Bildschirmfreigabe einrichten?

Vielen Dank,
Andreas

Am Di, 26. Mai 2020, 15:12 Matteo Santamaria [email protected]
schrieb:

Ich habe mich um pandas/util/_validators.py gekümmert. Viele dieser anderen Dateien
scheint mir auch schon ok.

  • 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


Sie erhalten dies, weil Sie diesen Thread abonniert haben.
Antworten Sie direkt auf diese E-Mail und zeigen Sie sie auf GitHub an
https://github.com/pandas-dev/pandas/issues/29547#issuecomment-634307953 ,
oder abmelden
https://github.com/notifications/unsubscribe-auth/APG73XKAUDLFVVQXUS2SJETRTQ5DDANCNFSM4JLZCU5Q
.

Hey @warden706 , ich bin eigentlich auch ziemlich neu hier, also hätte ich dir nicht viel zu zeigen. Ich fand diese Ressource sehr hilfreich, da ich herumgestolpert bin. Sie sollten sie sich ansehen.

Hi,
ziemlich neu zum Beitragen auch hier. ich kümmere mich um

  • [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/skalar/timedelta/test_timedelta.py

Ich habe diese anderen Dateien überprüft und scheint mir in Ordnung zu sein

  • [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/skalar/period/test_period.py
  • [X] pandas/tests/skalar/timestamp/test_constructors.py

ich bin auch neu hier.
Ich werde nehmen

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

ich habe eine Frage zur Codeänderung.
zum Beispiel in pandas/tests/series/indexing/test_take.py, Ausschnitt des Codes:

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

Daher ist mein Vorschlag, es zu ersetzen durch:

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])

ist das gut genug?

Hi,
Ich möchte eine PR machen, also führe ich den Test durch, aber ich habe ein paar Fehler. Also habe ich versucht, Tests auch auf dem Master durchzuführen.
Ist es normal, dass das Ausführen von pytest pandas auf einem unbearbeiteten gegabelten Master einige Fehler zurückgibt?

Master sollte in der Regel die Prüfungen bestehen. Stellen Sie sicher, dass Sie die neuesten Commits abgerufen haben. Welche Tests schlagen fehl?

@matteosantama Ich habe die letzten Commits gezogen, die Umgebung neu installiert und die Tests mit pytest pandas . Das sind die Ergebnisse

================= 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) =================

Mir ist aufgefallen, dass es keine Fehler gibt, wenn ich Tests nur für das einzelne Verzeichnis ausführe (zum Beispiel mit pytest pandas/tests/io ):

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

Seit dem @OlivierLuG- Kommentar scheinen fast alle Dateien korrigiert worden zu sein oder bereits ohne Änderung in

Korrigiert

  • [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

Keine Änderung erforderlich

  • [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/skalar/period/test_period.py
  • [X] pandas/tests/skalar/timestamp/test_constructors.py
  • [X] pandas/tests/io/test_html.py
  • [X] pandas/tests/reshape/test_melt.py
  • [X] pandas/tests/skalar/timedelta/test_timedelta.py

Außerdem denke ich, dass auch das schon ok ist

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

Muss noch prüfen/korrigieren

  • [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 hast du ein Update?

Ich bekomme immer wieder Fehler, von denen ich nicht weiß, was sie bedeuten.
jede hilfe wird geschätzt

Haben Sie versucht, die neuesten Änderungen auf dem Master abzurufen? Vielleicht wird es einige der fehlgeschlagenen Tests beheben.

es hat nicht geholfen.
Wenn jemand anderes es nehmen möchte, kannst du es tun

Ich habe einen Zweifel: Wenn wir eine Situation wie in 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'\\]")):
...

und so weiter, sollten wir msg in eine Funktion umwandeln und sie mit anderen Werten von "Col" aufrufen? Oder ist es besser, es so zu lassen, wie es ist?

@MatteoFelici danke für diese aktualisierte Liste. Ich habe die letzten verbleibenden Module überprüft, die Sie aufgerufen haben, und das sieht in Ordnung aus, also denke ich, dass wir dieses Problem schließen können

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen