Pandas: Замените старый синтаксис форматирования строк на f-строки

Созданный на 11 нояб. 2019  ·  137Комментарии  ·  Источник: pandas-dev/pandas

Поскольку мы больше не поддерживаем python 3.5, теперь мы можем использовать новые f-строки вместо старых .format() (и, очевидно, форматирование % ).

Примечания:

  • Не забудьте связать эту проблему в теле сообщения запроса на вытягивание, просто вставьте этот https://github.com/pandas-dev/pandas/issues/29547 в текст сообщения запроса на вытягивание.

  • Если какой-либо из ваших измененных файлов относится к # 29886, не забудьте также связать свой запрос на перенос с этой проблемой, просто вставьте этот https://github.com/pandas-dev/pandas/issues/29886 в тело сообщения запроса на перенос.

  • Прокомментируйте, над чем вы планируете работать, чтобы мы не выполняли двойную работу.

  • Если файл / файлы, которые следует пометить как выполненные, не отмечены, сообщите мне об этом в комментариях.


Чтобы проверить, какие файлы еще нужно исправить в каталоге 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/

Все вышеперечисленное также можно использовать как один лайнер:

grep -l -R -e '%s' -e '%d' -e '\.format(' --include=*.{py,pyx} pandas/
Кончик:

Если вы хотите увидеть номер строки вхождения, замените -l на -n
Например:

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

Текущий список:

  • [] панды / compat / pickle_compat.py

  • [] панды / _config / config.py

  • [] панды / ядро ​​/ массивы / datetimelike.py

  • [] панды / ядро ​​/ массивы / datetimes.py

  • [] панды / ядро ​​/ массивы / integer.py

  • [] панды / ядро ​​/ массивы / период.py

  • [] панды / ядро ​​/ вычисления / pytables.py

  • [] панды / ядро ​​/ config_init.py

  • [] панды / ядро ​​/ frame.py

  • [] панды / ядро ​​/ generic.py

  • [] панды / ядро ​​/ groupby / generic.py

  • [] панды / ядро ​​/ groupby / groupby.py

  • [] панды / ядро ​​/ индексы / base.py

  • [] панды / ядро ​​/ индексы / multi.py

  • [] панды / ядро ​​/ индексы / диапазон.py

  • [] панды / ядро ​​/ операторы / docstrings.py

  • [] панды / ядро ​​/ опс / __ init__.py

  • [] панды / ядро ​​/ reshape / merge.py

  • [] панды / ядро ​​/ инструменты / datetimes.py

  • [] панды / io / форматы / css.py

  • [] панды / io / форматы / excel.py

  • [] панды / io / форматы / format.py

  • [] панды / io / форматы / html.py

  • [] панды / io / форматы / info.py

  • [] панды / io / форматы / latex.py

  • [] панды / io / форматы / Printing.py

  • [] панды / io / форматы / style.py

  • [] панды / io / parsers.py

  • [] панды / io / pytables.py

  • [] панды / io / sas / sas_xport.py

  • [] панды / io / stata.py

  • [] панды / _libs / tslibs / c_timestamp.pyx

  • [] панды / _libs / tslibs / frequency.pyx

  • [] панды / _libs / tslibs / parsing.pyx

  • [] панды / _libs / tslibs / period.pyx

  • [] панды / _libs / tslibs / strptime.pyx

  • [] панды / _libs / tslibs / timedeltas.pyx

  • [] панды / построение / _matplotlib / converter.py

  • [] панды / тесты / массивы / категориальные / test_operators.py

  • [] панды / тесты / массивы / test_datetimelike.py

  • [] панды / тесты / dtypes / test_dtypes.py

  • [] панды / тесты / расширение / база / setitem.py

  • [] панды / тесты / кадр / test_constructors.py

  • [] панды / тесты / кадр / test_missing.py

  • [] панды / тесты / кадр / test_to_csv.py

  • [] панды / тесты / groupby / агрегат / test_other.py

  • [] панды / тесты / индексы / datetimes / test_date_range.py

  • [] панды / тесты / индексы / datetimes / test_datetime.py

  • [] панды / тесты / индексы / datetimes / test_formats.py

  • [] панды / тесты / индексы / datetimes / test_partial_slicing.py

  • [] панды / тесты / индексы / интервал / test_constructors.py

  • [] панды / тесты / индексы / интервал / test_interval.py

  • [] панды / тесты / индексы / мульти / test_format.py

  • [] панды / тесты / индексы / период / test_formats.py

  • [] панды / тесты / индексы / test_base.py

  • [] панды / тесты / индексы / timedeltas / test_timedelta.py

  • [] панды / тесты / индексация / test_categorical.py

  • [] панды / тесты / индексация / test_coercion.py

  • [] панды / тесты / io / excel / test_openpyxl.py

  • [] панды / тесты / io / excel / test_writers.py

  • [] панды / тесты / io / форматы / test_format.py

  • [] панды / тесты / io / форматы / test_printing.py

  • [] панды / тесты / io / форматы / test_style.py

  • [] панды / тесты / io / форматы / test_to_csv.py

  • [] панды / тесты / io / форматы / test_to_html.py

  • [] панды / тесты / io / форматы / test_to_latex.py

  • [] панды / тесты / io / парсер / test_compression.py

  • [] панды / тесты / io / парсер / test_encoding.py

  • [] панды / тесты / io / парсер / test_header.py

  • [] панды / тесты / io / парсер / test_parse_dates.py

  • [] панды / тесты / io / парсер / test_usecols.py

  • [] панды / тесты / io / test_html.py

  • [] панды / тесты / io / test_sql.py

  • [] панды / тесты / io / test_stata.py

  • [] панды / тесты / сокращения / test_reductions.py

  • [] панды / тесты / изменить форму / test_concat.py

  • [] панды / тесты / reshape / test_melt.py

  • [] панды / тесты / скаляр / период / test_period.py

  • [] панды / тесты / скаляр / timedelta / test_timedelta.py

  • [] панды / тесты / скаляр / отметка времени / test_constructors.py

  • [] панды / тесты / серии / индексация / test_numeric.py

  • [] панды / тесты / серии / индексация / test_take.py

  • [] панды / тесты / серии / индексация / test_where.py

  • [] панды / тесты / серии / методы / test_rename.py

  • [] панды / тесты / серии / test_api.py

  • [] панды / тесты / серии / test_constructors.py

  • [] панды / тесты / серии / test_datetime_values.py

  • [] панды / тесты / серии / test_repr.py

  • [] панды / тесты / test_strings.py

  • [] панды / тесты / инструменты / test_to_datetime.py

  • [] панды / тесты / серии / праздник / test_calendar.py

  • [] панды / тесты / серии / праздник / test_holiday.py

  • [] панды / тесты / tslibs / test_parsing.py

  • [] панды / тесты / util / test_assert_frame_equal.py

  • [] панды / tseries / frequency.py

  • [] панды / util / _decorators.py

  • [] панды / util / _test_decorators.py

  • [] панды / util / _validators.py

  • [] панды / _version.py


ЗАМЕТКА:

Список может меняться по мере постоянного перемещения / переименования файлов.


Перенял файлы и команды из этого PR .

Style good first issue

Самый полезный комментарий

Добавлен мой первый запрос на перенос с этим https://github.com/pandas-dev/pandas/pull/32007 :
панды / тесты / кадр / test_to_csv.py

Все 137 Комментарий

Я говорю:

  • [x] панды / _libs / groupby.pyx

  • [x] панды / _libs / hashing.pyx

  • [x] панды / _libs / index.pyx

  • [x] панды / _libs / internals.pyx

  • [x] панды / _libs / interval.pyx

  • [x] панды / _libs / lib.pyx

  • [x] панды / _libs / ops.pyx

  • [x] панды / _libs / parsers.pyx

  • [x] панды / _libs / reduce.pyx

  • [x] панды / _libs / sparse.pyx

  • [x] панды / _libs / testing.pyx

  • [x] панды / _libs / tslib.pyx

  • [x] панды / _libs / window.pyx

Я возьму:

  • [x] панды / тесты / индексы / test_base.py
  • [x] панды / тесты / индексы / test_category.py
  • [x] панды / тесты / индексы / test_common.py
  • [x] панды / тесты / индексы / test_numeric.py

для начала, если все в порядке!

Привет, @MomIsBestFriend. Можете ли вы порекомендовать какие-либо инструменты для этого преобразования? Беглый взгляд дал мне вот эти:

  1. Pyupgrade
  2. fstringify
  3. летать

У меня нет опыта ни с одним из них, но они могут быть здесь очень полезны

Привет @SaturnFromTitan , я лично иногда использую pyupgrade, но только когда файл содержит только несколько устаревших строковых форматов. Затем я смотрю изменения и исправляю, если в pyupgrade что-то не так.

Когда это файлы с большим количеством вхождений, я беру «сложные» вручную (например, '%.2f' % my_float ) и позволяю ему разбираться с общими, обычно это получается правильно.

Кроме того, некоторые изменения сделают измененный файл несовместимым с pep8, поэтому необходимо исправить и это, иначе он не пройдет тесты.

Далее займем:

  • [x] панды / compat / __ init__.py

  • [x] панды / compat / numpy / function.py

  • [x] панды / compat / numpy / __ init__.py

  • [x] панды / compat / _optional.py

Я возьму:

  • [x] панды / ядро ​​/ изменить форму / concat.py
  • [x] панды / core / reshape / melt.py
  • [] панды / ядро ​​/ reshape / merge.py
  • [x] панды / ядро ​​/ изменить форму / pivot.py
  • [x] панды / ядро ​​/ reshape / reshape.py
  • [] панды / ядро ​​/ reshape / tile.py

Что все думают о том, чтобы пометить это как good first issue ? Это должно относиться к большинству файлов здесь. Изменения, которые необходимо внести, обычно составляют всего несколько строк или около того на файл, и тому, кто вносит изменения, не нужно слишком беспокоиться о влиянии на другие части кода (поскольку выполняемая конечная функция такая же).

Я представляю установку, подобную # 28926.

Замена f-строки помещена на:

  • [x] панды / ядро ​​/ groupby / generic.py
  • [x] панды / ядро ​​/ groupby / groupby.py
  • [x] панды / ядро ​​/ groupby / grouper.py
  • [x] панды / ядро ​​/ groupby / ops.py

исх. № 29701

Далее займем:

  • [x] панды / _libs / tslibs / conversion.pyx

  • [x] панды / _libs / tslibs / c_timestamp.pyx

  • [x] панды / _libs / tslibs / fields.pyx

  • [x] панды / _libs / tslibs / nattype.pyx

  • [x] панды / _libs / tslibs / np_datetime.pyx

  • [x] панды / _libs / tslibs / offsets.pyx

  • [x] панды / _libs / tslibs / parsing.pyx

  • [x] панды / _libs / tslibs / timestamps.pyx

  • [x] панды / _libs / tslibs / timezones.pyx

  • [x] панды / _libs / tslibs / tzconversion.pyx

Я возьму

  • [x] панды / график / _core.py
  • [x] панды / построение / _matplotlib / boxplot.py
  • [x] панды / построение / _matplotlib / converter.py
  • [x] панды / построение / _matplotlib / core.py
  • [x] панды / построение / _matplotlib / misc.py
  • [x] панды / построение / _matplotlib / style.py
  • [x] панды / построение / _matplotlib / timeseries.py
  • [x] панды / построение / _matplotlib / tools.py
  • [x] pandas / plotting / _misc.py

исх # 29781

Я возьму:

  • [x] панды / ядро ​​/ изменить форму / concat.py
  • [x] панды / core / reshape / melt.py
  • [] панды / ядро ​​/ reshape / merge.py
  • [x] панды / ядро ​​/ изменить форму / pivot.py
  • [x] панды / ядро ​​/ reshape / reshape.py
  • [] панды / ядро ​​/ reshape / tile.py

Что все думают о том, чтобы пометить это как good first issue ? Это должно относиться к большинству файлов здесь. Изменения, которые необходимо внести, обычно составляют всего несколько строк или около того на файл, и тому, кто вносит изменения, не нужно слишком беспокоиться о влиянии на другие части кода (поскольку выполняемая конечная функция такая же).

Я представляю установку, подобную # 28926.

Конечно, я помечен соответствующим образом. Благодарность

Далее:

  • [x] панды / io / msgpack / _packer.pyx

  • [x] панды / io / msgpack / _unpacker.pyx

  • [x] панды / io / sas / sas.pyx

Извините, я только что заметил, что вы попросили указать, над какими файлами работать. Я просто использовал

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

Найти какое-нибудь старое форматирование. я прошу прощения

Извините, я только что заметил, что вы попросили указать, над какими файлами работать. Я просто использовал

@ForTimeBeing Вот почему я отредактировал пост, рад, что вы заметили :)

вы можете опубликовать то, над чем вы работали? на всякий случай кто-то ищет комментарии.

Конечно, взял;

  • [x] панды / tests / resample / test_datetime_index.py
  • [x] панды / tests / resample / test_time_grouper.py
  • [x] панды / тесты / серии / смещения / common.py
  • [x] панды / ошибки / __ init__.py
  • [x] панды / тесты / массивы / интервал / test_ops.py
  • [x] панды / тесты / массивы / sparse / test_array.py
  • [x] панды / тесты / массивы / sparse / test_libsparse.py
  • [x] панды / тесты / расширение / стрелка / array.py
  • [x] панды / тесты / расширение / база / print.py
  • [x] панды / тесты / расширение / десятичное / array.py
  • [x] панды / tests / resample / test_datetime_index.py
  • [x] панды / tests / resample / test_time_grouper.py
  • [x] панды / тесты / скаляр / test_nat.py
  • [x] панды / тесты / серии / смещения / common.py

и под

  • [x] панды / tseries / frequency.py

.format все еще существует и отображается в поиске grep, но нет литералов, которые можно было бы преобразовать в fstring. Не уверен, есть ли другой способ сделать это или оставить как есть, но теперь все литералы заменены на fstring в этом файле.

.format все еще существует и отображается в поиске grep, но нет литералов, которые можно было бы преобразовать в fstring. Не уверен, есть ли другой способ сделать это или оставить как есть, но теперь все литералы заменены на fstring в этом файле.

@ForTimeBeing
Нет проблем:)
спасибо за пиар :)

я взял

  • [x] панды / ядро ​​/ окно / common.py
  • [x] панды / ядро ​​/ окно / ewm.py
  • [x] панды / ядро ​​/ окно / расширение.py
  • [x] панды / ядро ​​/ окно / Rolling.py

исх. № 29952

Я возьму:

  • [x] ci / print_skipped.py

  • [x] doc / make.py

  • [x] doc / sphinxext / announce.py

  • [x] документ / sphinxext / Contributors.py

Работаем над: 'pandas / core / dtypes / dtypes.py'

Взял:

  • [x] панды / ядро ​​/ массивы / base.py
  • [x] панды / ядро ​​/ массивы / datetimelike.py
  • [x] панды / ядро ​​/ массивы / datetimes.py
  • [x] панды / ядро ​​/ массивы / string_.py
  • [x] панды / ядро ​​/ массивы / timedeltas.py
  • [x] панды / ядро ​​/ common.py
  • [x] панды / ядро ​​/ вычисления / align.py
  • [x] панды / ядро ​​/ вычисления / engine.py
  • [x] панды / ядро ​​/ вычисления / eval.py
  • [x] панды / ядро ​​/ вычисления / выражения.py
  • [x] панды / ядро ​​/ вычисления / expr.py
  • [x] панды / ядро ​​/ вычисления / ops.py
  • [x] панды / ядро ​​/ вычисления / pytables.py
  • [x] панды / ядро ​​/ вычисления / scope.py
  • [x] панды / ядро ​​/ frame.py
  • [x] панды / ядро ​​/ generic.py
  • [x] панды / ядро ​​/ strings.py

исх: 30116, 30135, 30363

Я возьму:

  • [x] панды / _libs / tslibs / frequency.pyx
  • [x] панды / _libs / tslibs / period.pyx
  • [x] панды / _libs / tslibs / strptime.pyx

У меня проблема с предопределенными строками. Я нашел решение, но не уверен, что он правильный.
Представьте себе ситуацию, когда у вас есть предопределенная строка, например:
THE_MESSAGE = "Сообщение с аргументами. Arg1: {arg1}, Arg2: {arg2}."
Это вызывается с помощью .format (), например:
THE_MESSAGE.format (arg1_str, arg2_str).

Могу ли я переписать это, используя лямбда-функцию способом, описанным ниже?
THE_MESSAGE = lambda arg1, arg2: f "Сообщение с аргументами. Arg1: {arg1}, Arg2: {arg2}."

и назовите это
THE_MESSAGE (arg1_str, arg2_str)?

Я знаю, что это сработает, я не уверен, что это лучший способ решить эту проблему :)

У меня проблема с предопределенными строками.

Я полностью понимаю, как объясняет pep 498 :

Обычные строки объединяются во время компиляции, а f-строки объединяются во время выполнения.

Нам нужно подумать о способе отказаться от использования .format() и использовать что-то еще - строковый шаблон.

Единственное, о чем я могу думать на данный момент, - это string.Template из stdlib, но я действительно не знаю.

@jbrockmendel Можете ли вы нам помочь?

@MomIsBestFriend , вам кажется, что лямбда-функция - это излишек для этого?

@MomIsBestFriend, я думаю, это может быть тот случай, когда жизнь с несколькими .format s - лучший вариант

@MomIsBestFriend , вам кажется, что лямбда-функция - это излишек для этого?

Я ни в коем случае не эксперт, спросите, пожалуйста, у одного из разработчиков.

взял

  • [x] панды / ядро ​​/ accessor.py
  • [x] панды / ядро ​​/ алгоритмы.py

исх. № 30120

взял

  • [x] панды / ядро ​​/ массивы / разреженный / accessor.py
  • [x] панды / ядро ​​/ массивы / разреженный / array.py
  • [x] панды / ядро ​​/ массивы / разреженный / dtype.py
  • [x] панды / ядро ​​/ массивы / sparse / scipy_sparse.py

исх # 30121

взял

  • [x] панды / ядро ​​/ массивы / _ranges.py
  • [x] панды / ядро ​​/ массивы / integer.py
  • [x] панды / ядро ​​/ массивы / interval.py
  • [x] панды / ядро ​​/ массивы / numpy_.py
  • [x] панды / ядро ​​/ массивы / период.py

исх # 30124

Я возьму

  • [x] панды / io / форматы / css.py
  • [x] панды / io / форматы / excel.py
  • [x] панды / io / форматы / style.py

Редактировать:
Принимая:

  • [x] pandas / util / _decorators.py
  • [x] панды / util / _depr_module.py

  • [x] панды / util / _doctools.py

  • [x] pandas / util / _print_versions.py

  • [x] pandas / util / _test_decorators.py

  • [x] панды / util / _tester.py

  • [x] pandas / util / testing.py

  • [x] панды / util / _validators.py

Я возьму

  • [] панды / ядро ​​/ config_init.py
  • [x] панды / ядро ​​/ construction.py
  • [x] панды / ядро ​​/ dtypes / base.py
  • [x] панды / ядро ​​/ dtypes / cast.py

Благодарность!

Я возьму:

панды / тесты / построение / test_converter.py

панды / тесты / построение / test_datetimelike.py

панды / тесты / построение / test_series.py

Я возьму

  • [x] панды / ядро ​​/ индексы / accessors.py
  • [x] панды / ядро ​​/ индексы / category.py
  • [x] панды / ядро ​​/ индексы / datetimelike.py
  • [x] панды / ядро ​​/ индексы / datetimes.py
  • [x] панды / ядро ​​/ индексы / замороженный.py
  • [x] панды / ядро ​​/ индексы / interval.py
  • [x] панды / ядро ​​/ индексы / multi.py
  • [x] панды / ядро ​​/ индексы / numeric.py
  • [x] панды / ядро ​​/ индексы / период.py
  • [x] панды / ядро ​​/ индексы / диапазон.py
  • [x] панды / ядро ​​/ индексы / timedeltas.py

30273

Привет, @MomIsBestFriend

панды / тесты / построение / test_converter.py

панды / тесты / построение / test_datetimelike.py

панды / тесты / построение / test_series.py

Были завершены. Спасибо.

Привет
я могу взять

  • [] панды / ядро ​​/ dtypes / dtypes.py
  • [] панды / ядро ​​/ dtypes / common.py

Спасибо

Привет возьму

  • [x] setup.py
  • [x] панды / _config / config.py
  • [x] панды / _config / localization.py

Спасибо!

Я взял:

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

Ссылка на мой пр: https://github.com/pandas-dev/pandas/pull/30278

Я буду работать над:

  • [] панды / ядро ​​/ массивы / base.py

Здесь из-за тега "хороший первый номер"

Я возьму:

  • [] панды / io / sql.py

  • [] панды / io / stata.py

Спасибо!

Я сделаю:

  • [x] панды / ядро ​​/ resample.py
  • [x] панды / ядро ​​/ indexing.py
  • [х] панды / ядро ​​/ внутренности / construction.py
  • [х] панды / ядро ​​/ внутренние / менеджеры.py
  • [х] панды / ядро ​​/ внутренние / блоки.py

я бы хотел взять
я только что сделал запрос на перенос по нему

  • [x] pandas / core / indexers.pyz

Отлично, всегда хотел скинуться на Панд. Будет обновлено, когда я узнаю, что я могу выполнить в ближайшие несколько недель ...

я могу взять
панды / _version.py

Прыгая на:

  • [] панды / ядро ​​/ массивы / datetimelike.py
  • [x] панды / io / форматы / Printing.py
  • [x] панды / тесты / расширение / список / array.py
  • [x] панды / тесты / индексы / datetimes / test_ops.py
  • [x] панды / тесты / индексы / мульти / test_analytics.py

Я возьму pandas / io / sizes / csvs.py

Я говорю:

  • [x] pandas / core / series.py (без устаревших строковых методов в коде, только документация)
  • [x] pandas / core / tools / datetimes.py (измененный код, будет тестировать и делать pullrequest до 25 декабря)

Вопрос: Есть ли ответ на вопрос, должно ли форматирование строк старой школы оставаться в справочнике по API?

Например, в 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

Если заменить это примером с f-строкой, вы получите что-то вроде:

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

Что не является точной заменой (f-строка не является функцией, я использую лямбда, чтобы сделать ее функцией, которая воспроизводит чистый эффект «Я есть» .format ()), и вызывает некоторые острые проблемы с размещением некоторые не лучшие практики в документации.

На данный момент я рассматриваю возможность изменения документации как выходящей за рамки, ожидая решения сообщества о том, как обращаться с подобными случаями.

Уже сделано (не уверен, кем):
панды / тесты / массивы / интервал / test_ops.py

Я также возьму

  • [x] панды / тесты / скаляр / интервал / test_ops.py
  • [x] панды / тесты / вычисления / test_eval.py
  • [x] панды / тесты / dtypes / *
  • [x] панды / тесты / dtypes / cast / test_infer_dtype.py
  • [x] панды / тесты / dtypes / test_dtypes.py
  • [x] панды / тесты / dtypes / test_inference.py

Вопрос: Есть ли ответ на вопрос, должно ли форматирование строк старой школы оставаться в справочнике по API?

cc @WillAyd @jreback

Я не знаю, что вы считаете "строковым форматом старой школы", но .format будет иметь некоторые варианты использования, которые не покрывают f-строки (а именно отложенная параметризация), так что уверен, что это все еще будет . Я не думаю, что у нас должен быть синтаксис строкового формата Py27 где-нибудь

Я возьму:

  • [x] панды / тесты / io / форматы / test_css.py
  • [x] панды / тесты / io / форматы / test_format.py
  • [x] панды / тесты / io / форматы / test_printing.py
  • [x] панды / тесты / io / форматы / test_style.py
  • [x] панды / тесты / io / форматы / test_to_csv.py
  • [x] панды / тесты / io / форматы / test_to_excel.py

Я возьму

  • [x] панды / compat / pickle_compat.py
  • [x] панды / _config / config.py
  • [x] панды / ядро ​​/ массивы / boolean.py

В № 30601 я взял

  • [x] панды / io / excel / _base.py
  • [x] панды / io / excel / _odfreader.py
  • [x] панды / io / excel / _openpyxl.py
  • [x] панды / io / excel / _util.py
  • [x] панды / io / excel / _xlwt.py
  • [x] панды / тесты / общий / test_frame.py
  • [x] панды / тесты / generic / test_generic.py
  • [x] панды / тесты / общий / test_series.py

Если все в порядке, я могу взять два файла ниже, чтобы начать с них!

  • [x] панды / тесты / база / test_conversion.py
  • [x] панды / тесты / база / test_ops.py

Эти изменения были внесены в # 30604.

Принимая на себя:

  • [] панды / ядро ​​/ ops / array_ops.py
  • [] панды / ядро ​​/ операторы / dispatch.py
  • [] панды / ядро ​​/ операторы / docstrings.py
  • [] панды / ядро ​​/ операторы / invalid.py
  • [] панды / ядро ​​/ опс / методы.py
  • [] панды / ядро ​​/ операторы / roperator.py

Есть ли предпочтительный способ отметить старые предполагаемые использования .format , которые оставлены как есть в PR? В случае (ошибочного) предположения, что что-то является хорошим вариантом использования, и это упускается из виду в PR

Работа над

  • [x] панды / тесты / groupby / aggregate / test_other.py
  • [x] панды / тесты / groupby / test_apply.py
  • [x] панды / тесты / groupby / test_bin_groupby.py
  • [x] панды / тесты / groupby / test_categorical.py
  • [x] панды / тесты / groupby / test_counting.py
  • [x] панды / tests / groupby / test_value_counts.py
  • [x] панды / тесты / groupby / test_function.py
  • [x] панды / тесты / groupby / test_groupby.py
  • [x] панды / тесты / groupby / test_transform.py
  • [x] панды / тесты / groupby / test_whitelist.py

Я возьму

  • [X] scripts / validate_docstrings.py
  • [X] скрипты / тесты / test_validate_docstrings.py
  • [X] scripts / generate_pip_deps_from_conda.py
  • [X] scripts / download_wheels.py
  • [X] панды / tseries / holiday.py
  • [X] панды / тесты / окно / test_window.py
  • [X] панды / тесты / util / test_validate_kwargs.py
  • [X] панды / тесты / util / test_validate_args.py

Хочу попробовать взять:

  • [x] панды / tests / util / test_assert_almost_equal.py
  • [x] панды / тесты / util / test_assert_categorical_equal.py
  • [x] панды / тесты / util / test_assert_extension_array_equal.py
  • [x] панды / тесты / util / test_assert_frame_equal.py
  • [x] панды / тесты / util / test_assert_index_equal.py
  • [x] панды / тесты / util / test_assert_numpy_array_equal.py
  • [x] панды / tests / util / test_validate_args_and_kwargs.py

Хочу взять:

  • [x] панды / ядро ​​/ массивы / период.py
  • [x] панды / ядро ​​/ dtypes / common.py
  • [x] панды / ядро ​​/ dtypes / dtypes.py
  • [x] панды / ядро ​​/ frame.py

Спасибо @ HH-MWB

Я возьму:

  • [] панды / ядро ​​/ массивы / timedeltas.py

Я нашел много кода в @Appender() , использующем % для форматирования строки. Этот код использует _shared_docs в качестве шаблона, который в основном определен в /pandas/core/generic.py и используется для пересечения нескольких файлов.

Я хотел бы заменить все форматирование, относящееся к _shared_docs . Это изменение потребует изменения большого количества файлов, но я не смогу проверить весь другой синтаксис форматирования строк в этих файлах.

Звучит хорошо? Я должен это сделать? @datapythonista @MomIsBestFriend

Я нашел много кода в @Appender() , использующем % для форматирования строки. Этот код использует _shared_docs в качестве шаблона, который в основном определен в /pandas/core/generic.py и используется для пересечения нескольких файлов.

Я хотел бы заменить все форматирование, относящееся к _shared_docs . Это изменение потребует изменения большого количества файлов, но я не смогу проверить весь другой синтаксис форматирования строк в этих файлах.

Звучит хорошо? Я должен это сделать? @datapythonista @MomIsBestFriend

@ HH-MWB Я действительно не имею права голоса по этому поводу, я думаю, что jreback, WillAyd и datapythonista (без тегов, потому что я не хочу их беспокоить) могут помочь вам больше, чем я :)

Что вы пытаетесь заменить с помощью Appender? Я не думаю, что это могут быть ф-струны

Было бы нормально, если бы .format заменил синтаксис Py27, но, вероятно, стоит открыть отдельный вопрос для обсуждения

Что вы пытаетесь заменить с помощью Appender? Я не думаю, что это могут быть ф-струны

Было бы нормально, если бы .format заменил синтаксис Py27, но, вероятно, стоит открыть отдельный вопрос для обсуждения

@WillAyd Я действительно думаю, что string.Template из stdlib - правильный метод для этого.
Есть предположения?

Привет, @WillAyd , извини, что не % на .format , а также замене кода типа %(XXX)s на {XXX} в шаблоне _shared_docs . Как сказал @MomIsBestFriend , другим вариантом будет string.Template .

Я открыл отдельный выпуск для дальнейшего обсуждения. Спасибо!

Принимая на себя:

  • [x] панды / тесты / reshape / test_reshape.py
  • [x] панды / тесты / скаляр / период / test_period.py

исх. № 31412

@MomIsBestFriend Привет! Впервые здесь! Я очень рада своему первому пиару! Я попробую поработать со следующими файлами:
versioneer.py
web / pandas_web.py
Спасибо!!

@drewseibert versioneer.py является поставщиком, поэтому мы не хотим его редактировать. @MomIsBestFriend вы можете удалить это из списка, чтобы избежать путаницы

@jbrockmendel Спасибо за внимание. Наряду с этим, похоже, что другой упомянутый мной файл "web / pandas_web.py" также уже работал. Оба могут быть удалены из списка работ.

Кроме того, я получаю ошибку разрешения 403, когда пытаюсь нажать на фиксацию. Я добавил SSH-ключ и попытался установить удаленный URL-адрес. Не работает для меня, клонирую ли я по SSH или HTTPS. Любая помощь приветствуется! Спасибо!

@MomIsBestFriend Привет! Впервые здесь! Я очень рада своему первому пиару! Я попробую поработать со следующими файлами:
versioneer.py
web / pandas_web.py
Спасибо!!

Удачи @drewseibert

Я возьму:

панды / ядро ​​/ изменить форму / concat.py
панды / ядро ​​/ изменить форму / melt.py
панды / ядро ​​/ изменить форму / merge.py
панды / ядро ​​/ изменить форму / pivot.py
панды / ядро ​​/ изменить / reshape.py

Работаем над этим сейчас:

панды / тесты / io / test_pickle.py

Привет
Я возьму

панды / util / _print_versions.py

панды / util / _test_decorators.py

https://github.com/pandas-dev/pandas/pull/31628 должно быть в порядке :)

Я возьму pandas/tests/frame/test_repr_info.py

ссылка: https://github.com/pandas-dev/pandas/pull/31639

Эй, я возьму

  • [] панды / ядро ​​/ массивы / integer.py

Следующие файлы можно отметить в списке ...
web / pandas_web.py
панды / тесты / io / test_pickle.py

Спасибо!

Еще один, чтобы отметить .. в файле не нужны f-строки:
панды / тесты / серии / индексация / test_boolean.py

Я буду работать над этим сейчас ...

панды / тесты / серии / индексация / test_indexing.py

Спасибо @drewseibert

Здесь еще есть работа? Я хочу внести свой вклад

@ 3вц Да конечно :)

Я думаю ты сможешь взять

панды / тесты / утилита / test_assert_extension_array_equal.py


LMK, если хотите большего.

Я могу чем-то помочь! Это будет мой первый проект с открытым исходным кодом, поэтому мне может понадобиться помощь. Я читал, как писать статьи, но все же.

С какими из них вы бы хотели, чтобы я справился?

@MomIsBestFriend похоже, что pandas/tests/util/test_assert_extension_array_equal.py было исправлено на PR # 30816 , кроме того, у меня уже настроена среда. Можете дать мне немного поработать?

@ 3vts @GrizzledLabs - не стесняйтесь брать любой из файлов, которые еще не были созданы в списке выше (и убедитесь, что никто не работает над этим) - затем прокомментируйте здесь, над чем вы работаете! Спасибо !

pandas / core / array / boolean.py, похоже, уже сделано. Я видел одну строку f'string и никакой .format (), если только я ее не пропустил.

pandas / core / dtypes / common.py, похоже, уже готов. f'strings, но нет .format ()

Некоторые из этих исправлений касаются нескольких файлов? Некоторые из них не содержат ни одного .format (), и мне интересно, есть ли функции, вызываемые между файлами? Потребуется ли для одного исправления изменить несколько файлов?

Привет, первый участник здесь! Рад приступить к работе!
Изначально хотел взять вот такие:

панды / compat / pickle_compat.py
панды / _config / config.py

но потом я увидел, что это было сделано и объединено, @MomIsBestFriend не могли бы вы обновить список вверху, чтобы отметить их как выполненные?

Я возьму эти:

  • [] панды / тесты / io / парсер / test_usecols.py

  • [] панды / тесты / io / pytables / conftest.py

  • [] панды / тесты / io / pytables / test_store.py

  • [] панды / тесты / io / pytables / test_timezones.py

@MomIsBestFriend, просматривая поток, я обнаружил, что есть исключение для предопределенных строк. Это все еще применимо? Или есть сейчас. обходной путь?

У меня проблема с предопределенными строками.

Я полностью понимаю, как объясняет pep 498 :

Обычные строки объединяются во время компиляции, а f-строки объединяются во время выполнения.

Нам нужно подумать о способе отказаться от использования .format() и использовать что-то еще - строковый шаблон.

Единственное, о чем я могу думать на данный момент, - это string.Template из stdlib, но я действительно не знаю.

@jbrockmendel Можете ли вы нам помочь?

Привет, первый участник 👋. Я возьму:

  • [X] панды / тесты / серии / частоты / test_inference.py
  • [X] панды / тесты / серии / методы / test_argsort.py
  • [X] панды / тесты / серии / test_constructors.py
  • [X] панды / тесты / индексирование / common.py
  • [X] панды / тесты / индексация / test_coercion.py
  • [X] панды / тесты / индексация / test_iloc.py
  • [X] панды / тесты / индексация / test_indexing.py
  • [X] панды / тесты / индексация / test_loc.py
  • [X] панды / тесты / индексы / common.py
  • [X] панды / тесты / индексы / datetimelike.py

@ monicaw218 , я бы начал только с одного файла, и как только ваш запрос на

Эти два файла можно исключить из списка:
👍
панды / io / parsers.py
панды / io / pytables.py

Также можно взять с собой:

панды / тесты / groupby / test_apply.py
панды / тесты / groupby / test_bin_groupby.py

Готово на # 31914
"панды / тесты / расширение / десятичный / test_decimal.py"
"панды / тесты / кадр / индексирование / test_categorical.py"
"панды / тесты / кадр / методы / test_describe.py"
"панды / тесты / кадр / методы / test_duplicated.py"
"панды / тесты / кадр / методы / test_to_dict.py"
"панды / тесты / кадр / test_alter_axes.py"
"панды / тесты / кадр / test_api.py"
"панды / тесты / кадр / test_constructors.py"
"панды / тесты / кадр / test_dtypes.py"
"панды / тесты / кадр / test_join.py"

Я возьму "pandas / io / sas / sas_xport.py".

Они готовы на # 31933

"панды / тесты / кадр / test_operators.py"
"панды / тесты / кадр / test_reshape.py"
"панды / тесты / кадр / test_timeseries.py"
"панды / тесты / индексы / datetimes / test_scalar_compat.py"
"панды / тесты / индексы / datetimes / test_tools.py"
"панды / тесты / индексы / интервал / test_indexing.py"
"панды / тесты / индексы / интервал / test_interval.py"

Они включены в # 31945

"панды / тесты / индексы / интервал / test_setops.py"
"панды / тесты / индексы / мульти / test_compat.py"
"панды / тесты / индексы / период / test_constructors.py"
"панды / тесты / индексы / timedeltas / test_constructors.py"
"панды / тесты / индексация / test_floats.py"

Они включены в # 31963

"панды / тесты / внутренности / test_internals.py"
"панды / тесты / io / excel / test_readers.py"
"панды / тесты / io / excel / test_style.py"
"панды / тесты / io / excel / test_writers.py"
"панды / тесты / io / excel / test_xlrd.py"
"панды / тесты / io / форматы / test_console.py"
"панды / тесты / io / форматы / test_to_html.py"
"панды / тесты / io / форматы / test_to_latex.py"
"панды / тесты / io / generate_legacy_storage_files.py"

Они включены в # 31967

"панды / тесты / io / парсер / test_c_parser_only.py"
"панды / тесты / io / парсер / test_common.py"
"панды / тесты / io / парсер / test_compression.py"
"панды / тесты / io / парсер / test_encoding.py"
"панды / тесты / io / парсер / test_multi_thread.py"
"панды / тесты / io / парсер / test_na_values.py"
"панды / тесты / io / парсер / test_parse_dates.py"
"панды / тесты / io / парсер / test_read_fwf.py"
"панды / тесты / io / pytables / conftest.py"
"панды / тесты / io / pytables / test_store.py"

Они включены в # 31980

"панды / тесты / io / pytables / test_timezones.py"
"панды / тесты / io / test_html.py"
"панды / тесты / io / test_stata.py"
"панды / тесты / resample / test_period_index.py"
"панды / тесты / изменить форму / слияние / test_join.py"
"панды / тесты / изменить форму / слияние / test_merge.py"
"панды / тесты / изменение формы / слияние / test_merge_asof.py"
"панды / тесты / reshape / test_melt.py"
"панды / тесты / reshape / test_pivot.py"
"панды / тесты / скаляр / timedelta / test_constructors.py"

Они включены в # 31986

"панды / тесты / скаляр / отметка времени / test_constructors.py"
"панды / тесты / скаляр / отметка времени / test_rendering.py"
"панды / тесты / скаляр / отметка времени / test_unary_ops.py"
"панды / тесты / серии / методы / test_nlargest.py"
"панды / тесты / серии / test_analytics.py"
"панды / тесты / серии / test_api.py"
"панды / тесты / серии / test_dtypes.py"
"панды / тесты / серии / test_ufunc.py"

Добавлен мой первый запрос на перенос с этим https://github.com/pandas-dev/pandas/pull/32007 :
панды / тесты / кадр / test_to_csv.py

Они включены в # 32032

"панды / тесты / test_downstream.py"
"панды / тесты / test_multilevel.py"
"панды / тесты / инструменты / test_numeric.py"
"панды / тесты / серии / частоты / test_inference.py"
"панды / тесты / tslibs / test_parse_iso8601.py"
"панды / тесты / окно / моменты / test_moments_rolling.py"

Этот файл включен в # 32029:

  • панды / тесты / массивы / категориальные / test_analytics.py

Файл включен в https://github.com/pandas-dev/pandas/pull/32044

  • скрипты / find_commit_touching_func.py

Они включены в # 32034

"панды / ядро ​​/ массивы / interval.py"
"панды / ядро ​​/ util / hashing.py"
"панды / io / форматы / format.py"
"панды / io / форматы / html.py"
"панды / io / форматы / latex.py"
"панды / io / форматы / print.py"
"панды / io / parsers.py"
"панды / тесты / массивы / категориальные / test_dtypes.py"
"панды / тесты / массивы / категориальные / test_operators.py"

Эти сделаны ...

панды / ядро ​​/ операторы / invalid.py
панды / ядро ​​/ операторы / методы.py
панды / ядро ​​/ операторы / roperator.py

Файлы, входящие в # 32063:

  • панды / тесты / серии / частоты / test_inference.py
  • панды / тесты / tslibs / test_parse_iso8601.py

Привет, хочу взять скрипты / validate_docstrings.py

Файл, включенный в запрос на вытягивание # 32189

  • панды / тесты / индексы / datetimes / test_to_period.py

Эта проблема решена? Я просматривал файлы, не отмеченные в списке вверху этого потока, похоже, что строки .format () были преобразованы

pandas // util / _decorators.py готов (строка, которая не работает, является комментарием)

pandas // core / indexes / base.py следует выделить (ошибка снова из-за комментария)

Привет, я начал смотреть на pandas / core / generic.py и быстро понял, что изменение строковых шаблонов со строки, интерполированной с помощью % на string.Template , потребует изменений во многих местах, где Substitute Используются декораторы Appender .

Вы стремитесь полностью отказаться от использования интерполяции % строки, и в этом случае эта работа будет необходима, или вы согласны с некоторым использованием интерполяции % ?

@smartvinnetou Что касается Appender и Substitute мы сейчас пытаемся заменить их декоратором doc . см. https://github.com/pandas-dev/pandas/issues/31942

@smartvinnetou Что касается Appender и Substitute мы сейчас пытаемся заменить их декоратором doc . см. # 31942

@MomIsBestFriend вы предпочитаете пропустить обновление pandas/core/generic.py в этом билете и сделать это под # 31942? Или мне следует заменить декораторы Appender и Subtitute в generic.py новым декоратором doc под этим билетом, чтобы удалить старую интерполяцию % ?

@smartvinnetou Что касается Appender и Substitute мы сейчас пытаемся заменить их декоратором doc . см. # 31942

@MomIsBestFriend вы предпочитаете пропустить обновление pandas/core/generic.py в этом билете и сделать это под # 31942? Или мне следует заменить декораторы Appender и Subtitute в generic.py новым декоратором doc под этим билетом, чтобы удалить старую интерполяцию % ?

@smartvinnetou Под # 31942 в случае pandas/core/generic.py (Если я правильно понял)

Привет, обнаружено довольно много файлов, которые были либо созданы, либо не нуждались в изменениях, но были помечены как незавершенные. Просто хотел спросить, была ли эта проблема решена и случайно не отмечена, или вы, ребята, все еще работаете над этим. Если это не решится, я тоже хотел бы внести свой вклад. Это были некоторые из файлов, которые были созданы, но не отмечены

  • панды / ядро ​​/ generic.py
  • панды / ядро ​​/ массивы / datetimes.py
  • панды / ядро ​​/ массивы / integer.py
  • панды / ядро ​​/ массивы / период.py
  • панды / ядро ​​/ массивы / timedeltas.py
  • панды / ядро ​​/ config_init.py
  • панды / ядро ​​/ dtypes / dtypes.py
  • панды / ядро ​​/ frame.py

@ sachinh35 Я обновил список :)

Трудно было отслеживать

Спасибо за обновление списка! @MomIsBestFriend

Я хотел бы внести свой вклад с # 32939 для файлов под pandas/core/ops/ . Как следует обрабатывать строки документации, например https://github.com/pandas-dev/pandas/blob/master/pandas/core/ops/docstrings.py#L564, которые иногда также импортируются в другие файлы? Оборачивание функций?

я изменил

  • панды / ядро ​​/ sorting.py
  • панды / тесты / индексы / datetimes / test_date_range.py
  • панды / тесты / индексы / интервал / test_interval.py
  • панды / тесты / индексация / test_coercion.py
  • панды / тесты / изменить форму / test_concat.py
  • панды / util / _decorators.py

Были изменены два файла:
панды / _libs / tslibs / timedeltas.pyx
панды / _libs / tslibs / timestamps.pyx

Обратите внимание, что в следующих не было проблем. Вы также можете отметить как выполненное:
панды / _libs / tslibs / c_timestamp.pyx
панды / _libs / tslibs / frequency.pyx
панды / _libs / tslibs / parsing.pyx
панды / _libs / tslibs / period.pyx
панды / _libs / tslibs / strptime.pyx

примечание: это мой первый пиар в жизни. Сообщите мне, если что-то нужно улучшить.

Прошился через тему, чтобы обновить список + проверить некоторые файлы.

Файлы помечены как выполненные без фиксации

(ничего менять не нужно):

  • [x] панды / _config / config.py
  • [x] панды / _version.py
  • [x] панды / compat / pickle_compat.py
  • [x] панды / ядро ​​/ вычисления / pytables.py
  • [x] панды / ядро ​​/ индексы / base.py
  • [x] панды / ядро ​​/ индексы / multi.py
  • [x] панды / ядро ​​/ индексы / диапазон.py
  • [x] панды / core / ops / __ init__.py
  • [x] панды / core / ops / docstrings.py
  • [x] панды / ядро ​​/ reshape / merge.py
  • [x] панды / ядро ​​/ инструменты / datetimes.py
  • [x] панды / io / форматы / css.py
  • [x] панды / io / форматы / excel.py
  • [x] панды / io / форматы / format.py
  • [x] панды / io / форматы / html.py
  • [x] панды / io / форматы / info.py
  • [x] панды / io / форматы / latex.py
  • [x] панды / io / форматы / Printing.py
  • [x] панды / io / форматы / style.py
  • [x] панды / io / parsers.py
  • [x] панды / io / pytables.py
  • [x] панды / io / sas / sas_xport.py
  • [x] панды / io / stata.py
  • [x] панды / тесты / массивы / категориальные / test_operators.py
  • [x] панды / тесты / массивы / test_datetimelike.py
  • [x] панды / тесты / dtypes / test_dtypes.py
  • [x] панды / тесты / расширение / база / setitem.py
  • [x] панды / тесты / кадр / test_constructors.py
  • [x] панды / тесты / кадр / test_missing.py
  • [x] панды / tests / frame / test_to_csv.py
  • [x] панды / тесты / groupby / aggregate / test_other.py
  • [x] панды / тесты / индексы / datetimes / test_datetime.py
  • [x] панды / тесты / индексы / datetimes / test_formats.py
  • [x] панды / тесты / индексы / datetimes / test_partial_slicing.py
  • [x] панды / тесты / индексы / интервал / test_constructors.py
  • [x] панды / тесты / индексы / мульти / test_format.py
  • [x] панды / тесты / индексы / период / test_formats.py
  • [x] панды / тесты / индексы / timedeltas / test_timedelta.py
  • [x] панды / тесты / индексация / test_categorical.py
  • [x] панды / тесты / io / excel / test_openpyxl.py
  • [x] панды / тесты / io / excel / test_writers.py
  • [x] панды / тесты / io / форматы / test_format.py
  • [x] панды / тесты / io / форматы / test_printing.py
  • [x] панды / тесты / io / форматы / test_style.py
  • [x] панды / тесты / io / форматы / test_to_csv.py
  • [x] панды / тесты / io / форматы / test_to_html.py
  • [x] панды / тесты / io / форматы / test_to_latex.py

Остальные файлы для проверки:

  • [] панды / ядро ​​/ массивы / datetimelike.py
  • [] панды / тесты / io / парсер / test_compression.py
  • [] панды / тесты / io / парсер / test_encoding.py
  • [] панды / тесты / io / парсер / test_header.py
  • [] панды / тесты / io / парсер / test_parse_dates.py
  • [] панды / тесты / io / парсер / test_usecols.py
  • [] панды / тесты / io / test_html.py
  • [] панды / тесты / io / test_sql.py
  • [] панды / тесты / io / test_stata.py
  • [] панды / тесты / сокращения / test_reductions.py
  • [] панды / тесты / reshape / test_melt.py
  • [] панды / тесты / скаляр / период / test_period.py
  • [] панды / тесты / скаляр / timedelta / test_timedelta.py
  • [] панды / тесты / скаляр / отметка времени / test_constructors.py
  • [] панды / тесты / серии / индексация / test_numeric.py
  • [] панды / тесты / серии / индексация / test_take.py
  • [] панды / тесты / серии / индексация / test_where.py
  • [] панды / тесты / серии / методы / test_rename.py
  • [] панды / тесты / серии / test_api.py
  • [] панды / тесты / серии / test_constructors.py
  • [] панды / тесты / серии / test_datetime_values.py
  • [] панды / тесты / серии / test_repr.py
  • [] панды / тесты / test_strings.py
  • [] панды / тесты / инструменты / test_to_datetime.py
  • [] панды / тесты / серии / праздник / test_calendar.py
  • [] панды / тесты / серии / праздник / test_holiday.py
  • [] панды / тесты / tslibs / test_parsing.py
  • [] панды / тесты / util / test_assert_frame_equal.py
  • [] панды / tseries / frequency.py
  • [] панды / util / _test_decorators.py
  • [] панды / util / _validators.py

Я позаботился о pandas/util/_validators.py . Многие из этих файлов мне тоже кажутся нормальными.

  • [x] pandas / util / _test_decorators.py
  • [x] панды / tseries / frequency.py
  • [x] панды / тесты / util / test_assert_frame_equal.py
  • [x] панды / тесты / tslibs / test_parsing.py
  • [x] панды / тесты / tseries / holiday / test_holiday.py
  • [x] панды / тесты / tseries / holiday / test_calendar.py
  • [x] панды / тесты / инструменты / test_to_datetime.py
  • [x] панды / тесты / test_strings.py
  • [x] панды / тесты / серии / test_repr.py
  • [x] панды / tests / series / test_datetime_values.py
  • [x] панды / тесты / серии / test_constructors.py
  • [x] панды / тесты / серии / test_api.py

Привет, Маттео,
Мне интересно помочь с этим, но я новичок в git и
способствуя pandas. Не могли бы вы провести меня через
шаги? Возможно, я смогу настроить демонстрацию экрана на этой неделе?

Спасибо,
Эндрю

Во вторник, 26 мая 2020 г., 15:12 Маттео Сантамария [email protected]
написал:

Я позаботился о pandas / util / _validators.py. Многие из этих других файлов
Мне тоже кажется, что все в порядке.

  • панды / util / _test_decorators.py
  • панды / tseries / frequency.py
  • панды / тесты / утилита / test_assert_frame_equal.py
  • панды / тесты / tslibs / test_parsing.py
  • панды / тесты / tseries / праздник / test_holiday.py
  • панды / тесты / tseries / праздник / test_calendar.py
  • панды / тесты / инструменты / test_to_datetime.py
  • панды / тесты / test_strings.py
  • панды / тесты / серии / test_repr.py
  • панды / тесты / серии / test_datetime_values.py
  • панды / тесты / серии / test_constructors.py
  • панды / тесты / серии / test_api.py

-
Вы получаете это, потому что подписаны на эту ветку.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/pandas-dev/pandas/issues/29547#issuecomment-634307953 ,
или отказаться от подписки
https://github.com/notifications/unsubscribe-auth/APG73XKAUDLFVVQXUS2SJETRTQ5DDANCNFSM4JLZCU5Q
.

Привет, @ warden706 , я тоже здесь новенький, так что мне этот ресурс очень полезным, так как наткнулся на него, вам стоит его проверить.

Привет,
довольно новичок в том, чтобы вносить свой вклад и здесь. Я забочусь о

  • [x] панды / тесты / io / парсер / test_header.py
  • [x] панды / тесты / io / test_sql.py
  • [x] панды / тесты / io / test_html.py
  • [x] панды / тесты / сокращения / test_reductions.py
  • [x] панды / тесты / reshape / test_melt.py
  • [x] панды / тесты / скаляр / timedelta / test_timedelta.py

Я проверил эти другие файлы и мне кажется, что все в порядке

  • [X] панды / тесты / io / парсер / test_compression.py
  • [X] панды / тесты / io / парсер / test_encoding.py
  • [X] панды / тесты / io / парсер / test_parse_dates.py
  • [X] панды / тесты / io / парсер / test_usecols.py
  • [X] панды / тесты / io / test_stata.py
  • [X] панды / тесты / скаляр / период / test_period.py
  • [X] панды / тесты / скаляр / отметка времени / test_constructors.py

Я тоже здесь новенький.
Я возьму

  • [] панды / тесты / серии / индексация / test_numeric.py
  • [] панды / тесты / серии / индексация / test_take.py
  • [] панды / тесты / серии / индексация / test_where.py

У меня вопрос по поводу смены кода.
например, в pandas / tests / series / indexing / test_take.py фрагмент кода:

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

поэтому я предлагаю заменить его на:

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

это достаточно хорошо?

Привет,
Я бы хотел устроить пиар, поэтому провожу тест, но у меня пара провалов. Поэтому я попытался запустить тесты также на мастере.
Это нормально, что запуск pytest pandas на неотредактированном разветвленном мастере возвращает пару сбоев?

Мастер обычно должен сдавать экзамены. Убедитесь, что вы сняли последние коммиты. Какие тесты терпят неудачу?

@matteosantama Я вытащил последние коммиты, переустановил среду и повторно запустил тесты с pytest pandas . Вот результаты

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

Я заметил, что если я запускаю тесты только в одном каталоге (например, с pytest pandas/tests/io ), сбоев не возникает:

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

После комментария @OlivierLuG кажется, что почти все файлы были исправлены или уже исправны без каких-либо изменений. Попробую обновить список "еще открытых" файлов.

Исправленный

  • [X] панды / util / _validators.py
  • [X] панды / тесты / io / парсер / test_header.py
  • [X] панды / тесты / io / test_sql.py
  • [X] панды / тесты / сокращения / test_reductions.py

Нет необходимости в модификации

  • [X] pandas / util / _test_decorators.py
  • [X] панды / tseries / frequency.py
  • [X] панды / тесты / util / test_assert_frame_equal.py
  • [X] панды / тесты / tslibs / test_parsing.py
  • [X] панды / tests / tseries / holiday / test_holiday.py
  • [X] панды / тесты / tseries / holiday / test_calendar.py
  • [X] панды / тесты / инструменты / test_to_datetime.py
  • [X] панды / тесты / test_strings.py
  • [X] панды / тесты / серии / test_repr.py
  • [X] панды / tests / series / test_datetime_values.py
  • [X] панды / тесты / серии / test_constructors.py
  • [X] панды / тесты / серии / test_api.py
  • [X] панды / тесты / io / парсер / test_compression.py
  • [X] панды / тесты / io / парсер / test_encoding.py
  • [X] панды / тесты / io / парсер / test_parse_dates.py
  • [X] панды / тесты / io / парсер / test_usecols.py
  • [X] панды / тесты / io / test_stata.py
  • [X] панды / тесты / скаляр / период / test_period.py
  • [X] панды / тесты / скаляр / отметка времени / test_constructors.py
  • [X] панды / тесты / io / test_html.py
  • [X] панды / тесты / reshape / test_melt.py
  • [X] панды / тесты / скаляр / timedelta / test_timedelta.py

Более того, я думаю, что тоже это уже нормально

  • [X] панды / ядро ​​/ массивы / datetimelike.py
  • [X] панды / тесты / серии / методы / test_rename.py

Еще проверить / исправить

  • [x] панды / тесты / серии / индексирование / test_numeric.py
  • [x] панды / тесты / серии / индексирование / test_take.py
  • [x] панды / тесты / серии / индексирование / test_where.py

@DanBasson у вас есть обновления?

я продолжаю получать ошибки, которые я не знаю, что они означают.
любая помощь будет оценена

Вы пробовали загрузить последние модификации на master? Возможно, это исправит некоторые из неудавшихся тестов.

это не помогло.
если кто-то другой захочет взять его, ты можешь

Сомневаюсь: когда мы имеем ситуацию как в 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'\\]")):
...

и так далее, должны ли мы преобразовать msg в функцию и вызвать ее с разными значениями «Col»? Или лучше оставить как есть?

@MatteoFelici благодарит за обновленный список. Я проверил несколько последних оставшихся модулей, которые вы вызывали, и все выглядит нормально, поэтому я думаю, что мы можем закрыть эту проблему.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги