Pandas: Reemplace la sintaxis de formato de cadena antigua con f-strings

Creado en 11 nov. 2019  ·  137Comentarios  ·  Fuente: pandas-dev/pandas

Dado que ya no admitimos python 3.5, ahora podemos usar las nuevas cadenas f en lugar del antiguo .format() (y obviamente el formato % ).

Notas:

  • No olvide vincular este problema en el mensaje del cuerpo de su solicitud de extracción, simplemente pegue este https://github.com/pandas-dev/pandas/issues/29547 en el mensaje del cuerpo de su solicitud de extracción.

  • Si alguno de sus archivos modificados está relacionado con # 29886, asegúrese de vincular su solicitud de extracción a ese problema también, simplemente pegue este https://github.com/pandas-dev/pandas/issues/29886 en el mensaje del cuerpo de su solicitud de extracción también.

  • Por favor comente en qué está planeando trabajar, así no haremos el doble de trabajo.

  • Si un archivo / archivos que deberían estar marcados como hechos, no están marcados, por favor comente hacérmelo saber.


Para verificar qué archivos aún deben repararse en el directorio 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/

Todo lo anterior también se puede utilizar como un revestimiento:

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

Si desea ver el número de línea de la ocurrencia, reemplace -l con -n
por ejemplo:

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

La lista actual es:

  • [] 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 / formatos / css.py

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

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

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

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

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

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

  • [] pandas / io / formatos / 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 / formatos / test_format.py

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • [] pandas / tests / test_strings.py

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

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

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

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

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

  • [] pandas / tseries / frequencies.py

  • [] pandas / util / _decorators.py

  • [] pandas / util / _test_decorators.py

  • [] pandas / util / _validators.py

  • [] pandas / _version.py


NOTA:

La lista puede cambiar a medida que los archivos se mueven / renombran constantemente.


Archivos y comandos heredados de este PR .

Style good first issue

Comentario más útil

Agregué mi primera solicitud de extracción con este https://github.com/pandas-dev/pandas/pull/32007 :
pandas / tests / frame / test_to_csv.py

Todos 137 comentarios

Estoy tomando:

  • [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 / reducción.pyx

  • [x] pandas / _libs / sparse.pyx

  • [x] pandas / _libs / testing.pyx

  • [x] pandas / _libs / tslib.pyx

  • [x] pandas / _libs / window.pyx

Yo tomaré:

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

para empezar, ¡si está bien!

Hola @MomIsBestFriend ¿Puedes recomendar alguna herramienta para esta conversión? Un vistazo rápido me dio estos:

  1. pyupgrade
  2. fstringify
  3. volar

No tengo experiencia con ninguno de ellos, pero podrían ser de gran ayuda aquí.

Hola @SaturnFromTitan , personalmente a veces uso pyupgrade, pero solo cuando el archivo contiene solo algunos formatos de cadena desactualizados. Luego miro los cambios y soluciono si pyupgrade hizo algo mal.

Cuando son archivos con muchas ocurrencias, busco los "complejos" manualmente (por ejemplo, '%.2f' % my_float ) y dejo que se ocupe de los comunes, por lo general lo hace bien.

Además, algunos de los cambios harán que el archivo modificado no sea compatible con pep8, por lo que también es necesario corregirlo, de lo contrario no pasará las pruebas.

Tomará el siguiente:

  • [x] pandas / compat / __ init__.py

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

  • [x] pandas / compat / numpy / __ init__.py

  • [x] pandas / compat / _optional.py

Yo tomaré:

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

¿Qué piensan todos sobre etiquetar esto como good first issue ? Debería aplicarse a la mayoría de los archivos aquí. Los cambios que deben realizarse suelen ser solo unas pocas líneas por archivo, y quienquiera que realice los cambios no debe preocuparse demasiado por afectar otras partes del código (ya que la función final realizada es la misma).

Me estoy imaginando una configuración similar a la # 28926.

reemplazo de f-string colocado en:

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

ref # 29701

Tomará el siguiente:

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

Yo tomaré

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

ref # 29781

Yo tomaré:

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

¿Qué piensan todos sobre etiquetar esto como good first issue ? Debería aplicarse a la mayoría de los archivos aquí. Los cambios que deben realizarse suelen ser solo unas pocas líneas por archivo, y quienquiera que realice los cambios no debe preocuparse demasiado por afectar otras partes del código (ya que la función final realizada es la misma).

Me estoy imaginando una configuración similar a la # 28926.

Seguro que he etiquetado en consecuencia. Gracias

Tomando siguiente:

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

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

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

Lo siento, acabo de notar que ha solicitado especificar en qué archivos trabajar. Solo he estado usando

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

Para encontrar cualquier formato antiguo. Pido disculpas

Lo siento, acabo de notar que ha solicitado especificar en qué archivos trabajar. Solo he estado usando

@ForTimeBeing Es por eso que

¿Puedes publicar en lo que trabajaste? por si acaso alguien busca los comentarios.

Seguro, tomé;

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

Y debajo

  • [x] pandas / tseries / frequencies.py

.format todavía existe y se muestra en la búsqueda grep, pero no hay literales para cambiar a fstring. No estoy seguro de si hay otra forma de hacerlo o mantenerlo como está, pero todos los literales se intercambian ahora a fstring en ese archivo.

.format todavía existe y se muestra en la búsqueda grep, pero no hay literales para cambiar a fstring. No estoy seguro de si hay otra forma de hacerlo o mantenerlo como está, pero todos los literales se intercambian ahora a fstring en ese archivo.

@Por ahora, por el momento
No hay problemas:)
gracias por las relaciones públicas :)

Yo tomé

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

ref # 29952

Yo tomaré:

  • [x] ci / print_skipped.py

  • [x] doc / make.py

  • [x] doc / sphinxext / publish.py

  • [x] doc / sphinxext / contributors.py

Trabajando en: 'pandas / core / dtypes / dtypes.py'

Tomó:

  • [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 / motors.py
  • [x] pandas / core / computation / eval.py
  • [x] pandas / core / computation / expression.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

Yo tomaré:

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

Tengo un problema con las cadenas predefinidas. Encontré la solución, pero no estoy seguro de si es la correcta.
Imagina la situación en la que tienes una cadena predefinida como:
THE_MESSAGE = "Mensaje con argumentos. Arg1: {arg1}, Arg2: {arg2}."
Que se llama con .format () como:
THE_MESSAGE.format (arg1_str, arg2_str).

¿Podría reescribir esto usando la función lambda de la manera que se describe a continuación?
THE_MESSAGE = lambda arg1, arg2: f "Mensaje con argumentos. Arg1: {arg1}, Arg2: {arg2}."

y llámalo por
THE_MESSAGE (arg1_str, arg2_str)?

Sé que funcionaría, no estoy seguro de si es la mejor manera de abordar este problema :)

Tengo un problema con las cadenas predefinidas.

Lo entiendo completamente, como explica pep 498 :

Las cadenas regulares se concatenan en tiempo de compilación y las cadenas f se concatenan en tiempo de ejecución.

Necesitamos pensar en una forma de eliminar el uso de .format() y usar algo más como una plantilla de cadena.

Lo único que puedo pensar en este momento es string.Template de stdlib, pero realmente no lo sé.

@jbrockmendel ¿Puedes ayudarnos?

@MomIsBestFriend ¿Crees que la función lambda es una exageración para esto?

@MomIsBestFriend creo que este puede ser un caso en el que vivir con unos .format s es el camino a seguir

@MomIsBestFriend ¿Crees que la función lambda es una exageración para esto?

No estoy ni cerca de un experto, pregúntale a uno de los desarrolladores.

tomó

  • [x] pandas / core / accessor.py
  • [x] pandas / core / algorítms.py

ref # 30120

tomó

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

ref # 30121

tomó

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

ref # 30124

Yo tomaré

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

Editar:
Tomando:

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

Yo tomaré

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

¡Gracias!

Yo tomaré:

pandas / tests / plotting / test_converter.py

pandas / tests / plotting / test_datetimelike.py

pandas / tests / plotting / test_series.py

Yo tomaré

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

Hola, @MomIsBestFriend

pandas / tests / plotting / test_converter.py

pandas / tests / plotting / test_datetimelike.py

pandas / tests / plotting / test_series.py

Ha sido completado. Gracias.

Hola
yo puedo llevar

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

Gracias

Hola me llevo

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

¡Gracias!

Yo tomé:

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

Enlace a mi pr: https://github.com/pandas-dev/pandas/pull/30278

Trabajaré en:

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

Aquí debido a la etiqueta "buen primer número"

Yo tomaré:

  • [] pandas / io / sql.py

  • [] pandas / io / stata.py

¡Gracias!

Lo haré:

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

me gustaría tomar
Acabo de hacer una solicitud de extracción

  • [x] pandas / core / indexers.pyz

Genial, siempre quise colaborar con Pandas. Actualizaré cuando sepa lo que puedo cumplir en las próximas semanas ...

yo puedo llevar
pandas / _version.py

Saltando sobre:

  • [] pandas / core / arrays / datetimelike.py
  • [x] pandas / io / formatos / 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

Tomaré pandas / io / Format / csvs.py

Estoy tomando:

  • [x] pandas / core / series.py (sin métodos de cadena pasados ​​de moda en el código, solo la documentación)
  • [x] pandas / core / tools / datetimes.py (código cambiado, probará y hará pullrequest antes del 25 de diciembre)

Pregunta: ¿Existe una respuesta sobre si el formato de cadena de la vieja escuela debe permanecer en la referencia de API?

Por ejemplo, en 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

Reemplazar esto con un ejemplo de f-string fuerza algo como:

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

Lo cual no es un reemplazo exacto (f-string no es una función, estoy usando la lambda para convertirla en una función que replica el efecto neto de 'Soy un' .format ()), y plantea algunos problemas espinosos sobre poner algunas prácticas no recomendadas en la documentación.

Por ahora, estoy considerando cambiar la documentación como fuera de alcance, pendiente de la decisión de la comunidad sobre cómo manejar casos como este.

Ya hecho (no estoy seguro de quién):
pandas / tests / arrays / interval / test_ops.py

Yo también tomaré

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

Pregunta: ¿Existe una respuesta sobre si el formato de cadena de la vieja escuela debe permanecer en la referencia de API?

cc @WillAyd @jreback

No sé qué consideras que es el "formato de cadena de la vieja escuela", pero .format tendrá algunos casos de uso que las cadenas f no cubren (es decir, parametrización retrasada), así que seguro que seguirá existiendo. . Sin embargo, no creo que debamos tener la sintaxis de formato de cadena Py27 en ninguna parte

Yo tomaré:

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

Yo tomaré

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

En el # 30601, asumí

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

¡Puedo tomar los dos archivos a continuación para comenzar si está bien!

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

Estos cambios se han realizado en # 30604

Teniendo en:

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

¿Existe una forma preferida de anotar los antiguos usos previstos de .format que se dejan como están, en los RP? En el caso de asumir (incorrectamente) que algo es un buen caso de uso y se pasa por alto en el PR

Trabajando en

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

Yo tomaré

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

Me gustaría probar y tomar:

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

Me gustaría tomar:

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

Gracias @ HH-MWB

Voy a tomar:

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

Encontré una gran cantidad de código en @Appender() están usando % para formatear la cadena. Ese código utiliza _shared_docs como plantilla, que se define principalmente en /pandas/core/generic.py y se ha utilizado cruzando varios archivos.

Me gustaría reemplazar todo el formato relevante de _shared_docs . Este cambio necesitará modificar muchos archivos, pero no podré verificar todas las demás sintaxis de formato de cadenas en esos archivos.

¿Eso suena bien? ¿Debería hacerlo? @datapythonista @MomIsBestFriend

Encontré una gran cantidad de código en @Appender() están usando % para formatear la cadena. Ese código utiliza _shared_docs como plantilla, que se define principalmente en /pandas/core/generic.py y se ha utilizado cruzando varios archivos.

Me gustaría reemplazar todo el formato relevante de _shared_docs . Este cambio necesitará modificar muchos archivos, pero no podré verificar todas las demás sintaxis de formato de cadenas en esos archivos.

¿Eso suena bien? ¿Debería hacerlo? @datapythonista @MomIsBestFriend

@ HH-MWB Realmente no tengo nada que decir sobre esto, creo que jreback y WillAyd y datapythonista (sin etiquetar porque no quiero molestarlos), pueden ayudarte más de lo que yo puedo :)

¿Qué estás intentando reemplazar con Appender? No creo que puedan ser f-strings

Estaría bien con .format reemplazando la sintaxis de Py27, pero probablemente valga la pena abrir un tema separado para discutir

¿Qué estás intentando reemplazar con Appender? No creo que puedan ser f-strings

Estaría bien con .format reemplazando la sintaxis de Py27, pero probablemente valga la pena abrir un tema separado para discutir

@WillAyd Creo que string.Template de stdlib es el método correcto para esto.
¿Alguna idea?

Hola @WillAyd , lo siento, no lo dejé claro. Sí, mi idea original era reemplazar % por .format , y también reemplazar un código como %(XXX)s para que sea {XXX} en la plantilla _shared_docs . Como dijo @MomIsBestFriend , string.Template sería otra opción.

Abrí una edición separada para más discusión. ¡Gracias!

Teniendo en:

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

ref # 31412

@MomIsBestFriend ¡Hola! ¡Colaborador de código abierto por primera vez aquí! ¡Estoy muy emocionado por mi primer PR! Intentaré trabajar en los siguientes archivos:
versioneer.py
web / pandas_web.py
¡¡Gracias!!

@drewseibert versioneer.py está vendored, por lo que no queremos editarlo @MomIsBestFriend ¿puedes eliminar esto de la lista para evitar esta confusión?

@jbrockmendel Gracias por el

Además, obtengo un error de permisos 403 cuando intento enviar una confirmación. Agregué una clave SSH e intenté configurar la URL remota. No me funciona si clono con SSH o HTTPS. ¡Se agradece cualquier ayuda! ¡Gracias!

@MomIsBestFriend ¡Hola! ¡Colaborador de código abierto por primera vez aquí! ¡Estoy muy emocionado por mi primer PR! Intentaré trabajar en los siguientes archivos:
versioneer.py
web / pandas_web.py
¡¡Gracias!!

Buena suerte @drewseibert

Yo tomaré:

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

Trabajando en este ahora:

pandas / tests / io / test_pickle.py

Hola
Yo tomaré

pandas / util / _print_versions.py

pandas / util / _test_decorators.py

https://github.com/pandas-dev/pandas/pull/31628 debería estar bien :)

Tomaré pandas/tests/frame/test_repr_info.py

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

Oye, me quedo con

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

Los siguientes archivos se pueden marcar en la lista ...
web / pandas_web.py
pandas / tests / io / test_pickle.py

¡Gracias!

Otro para marcar ... no se necesitan cadenas f en el archivo:
pandas / tests / series / indexing / test_boolean.py

Trabajaré en este ahora ...

pandas / tests / series / indexing / test_indexing.py

Gracias @drewseibert

¿Todavía queda trabajo por aquí? Quiero contribuir

@ 3vts Sí, por supuesto :)

Creo que puedes tomar

pandas / tests / util / test_assert_extension_array_equal.py


LMK si quieres más.

¡Algo en lo que puedo ayudar! Será mi primera contribución de código abierto, por lo que es posible que necesite ayuda. He leído algo sobre cómo contribuir con artículos, pero aún así.

¿Cuáles te gustaría que manejara?

@MomIsBestFriend parece que pandas/tests/util/test_assert_extension_array_equal.py se corrigió en PR # 30816 , además, ya tengo el entorno configurado. ¿Puedes darme algo de carga para trabajar?

@ 3vts @GrizzledLabs : siéntase libre de tomar cualquiera de los archivos que aún no se hayan hecho en la lista anterior (y verifique que nadie más esté trabajando en él), ¡luego comente aquí en qué está trabajando! Gracias !

pandas / core / arrays / boolean.py parece que ya está hecho. Vi una f'string y ningún .format (), a menos que me lo perdiera.

pandas / core / dtypes / common.py también parece estar hecho. f'strings pero sin .format ()

¿Algunas de estas correcciones abarcan varios archivos? Algunos no contienen un solo .format (), y me pregunto si hay funciones llamadas entre archivos. ¿Una sola solución requeriría cambiar varios archivos?

Hola, contribuyo por primera vez aquí! ¡Emocionado por empezar!
Inicialmente quería tomar estos:

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

pero luego vi que se hizo y se fusionó, @MomIsBestFriend ,

Tomaré estos:

  • [] 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 revisando el hilo encontré que hay una excepción para las cadenas predefinidas. ¿Esto todavía se aplica? O lo tenemos ahora. una solución?

Tengo un problema con las cadenas predefinidas.

Lo entiendo completamente, como explica pep 498 :

Las cadenas regulares se concatenan en tiempo de compilación y las cadenas f se concatenan en tiempo de ejecución.

Necesitamos pensar en una forma de eliminar el uso de .format() y usar algo más como una plantilla de cadena.

Lo único que puedo pensar en este momento es string.Template de stdlib, pero realmente no lo sé.

@jbrockmendel ¿Puedes ayudarnos?

Hola, colaborador por primera vez 👋. Yo tomaré:

  • [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 , comenzaría con un solo archivo, y una vez que su solicitud de extracción se haya fusionado, puede continuar con el resto. La primera contribución suele ser más complicada de lo esperado, y para nosotros (revisores) también suele ser útil si las solicitudes de extracción son pequeñas. Especialmente para nuevos colaboradores, donde se pueden necesitar más comentarios.

Estos dos archivos se pueden marcar de la lista:
👍
pandas / io / parsers.py
pandas / io / pytables.py

Estos también son buenos para llevar:

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

Estos están listos en # 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"

Tomaré "pandas / io / sas / sas_xport.py".

Estos están listos en # 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"

Estos se incluyen en # 31945

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

Estos se incluyen en # 31963

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

Estos se incluyen en # 31967

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

Estos se incluyen en # 31980

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

Estos se incluyen en # 31986

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

Agregué mi primera solicitud de extracción con este https://github.com/pandas-dev/pandas/pull/32007 :
pandas / tests / frame / test_to_csv.py

Estos se incluyen en # 32032

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

Este archivo se incluye en # 32029:

  • pandas / tests / arrays / categóricos / test_analytics.py

Archivo incluido en https://github.com/pandas-dev/pandas/pull/32044

  • scripts / find_commits_touching_func.py

Estos se incluyen en # 32034

"pandas / core / arrays / interval.py"
"pandas / core / util / hashing.py"
"pandas / io / formatos / format.py"
"pandas / io / formatos / html.py"
"pandas / io / formatos / latex.py"
"pandas / io / formatos / printing.py"
"pandas / io / parsers.py"
"pandas / tests / arrays / categóricos / test_dtypes.py"
"pandas / tests / arrays / categóricos / test_operators.py"

Estos están hechos ...

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

Archivos incluidos en # 32063:

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

Hola, quiero tomar scripts / validate_docstrings.py

Archivo incluido en la solicitud de extracción # 32189

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

¿Este problema está resuelto? He estado mirando archivos sin marcar en la lista en la parte superior de este hilo, parece que las cadenas .format () se han convertido

pandas // util / _decorators.py está listo (la línea que falla es un comentario)

pandas // core / indexes / base.py debe estar marcado (el error proviene de un comentario nuevamente)

Hola, comencé a buscar en pandas / core / generic.py y rápidamente me di cuenta de que cambiar las plantillas de cadenas de una cadena interpolada con % a string.Template requerirá cambios en muchos lugares donde Substitute Se utilizan decoradores Appender .

¿Quiere eliminar todo el uso de la interpolación de cadena % , en cuyo caso este trabajo será necesario, o está de acuerdo con el uso de la interpolación % ?

@smartvinnetou Cuando se trata de Appender y Substitute , ahora estamos tratando de reemplazarlos con el decorador doc . ver https://github.com/pandas-dev/pandas/issues/31942

@smartvinnetou Cuando se trata de Appender y Substitute , ahora estamos tratando de reemplazarlos con el decorador doc . ver # 31942

@MomIsBestFriend ¿Prefieres omitir la mejora de pandas/core/generic.py en este boleto y hacerlo bajo el # 31942? ¿O debería reemplazar los decoradores Appender y Subtitute en generic.py con su nuevo decorador doc debajo de este ticket para eliminar la interpolación antigua % ?

@smartvinnetou Cuando se trata de Appender y Substitute , ahora estamos tratando de reemplazarlos con el decorador doc . ver # 31942

@MomIsBestFriend ¿Prefieres omitir la mejora de pandas/core/generic.py en este boleto y hacerlo bajo el # 31942? ¿O debería reemplazar los decoradores Appender y Subtitute en generic.py con su nuevo decorador doc debajo de este ticket para eliminar la interpolación antigua % ?

@smartvinnetou Under # 31942 en el caso de pandas/core/generic.py (si entendí correctamente)

Hola, encontré muchos archivos que estaban hechos o que no necesitaban cambios, pero que estaban marcados como no hechos. Solo quería preguntar si este problema se resolvió y accidentalmente no se marcó o si todavía están trabajando en ello. Si no se resuelve, me gustaría contribuir también. Estos fueron algunos de los archivos que se hicieron pero no se marcaron

  • 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 He actualizado la lista :)

Se hizo difícil hacer un seguimiento

¡Gracias por actualizar la lista! @MamáMejor Amiga

Me gustaría contribuir con # 32939 para archivos de menos de pandas/core/ops/ . ¿Cómo se deben manejar las cadenas de documentos como, por ejemplo, https://github.com/pandas-dev/pandas/blob/master/pandas/core/ops/docstrings.py#L564 que a veces también se importan en otros archivos? ¿Envolviendo funciones?

Cambié

  • 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

Los dos archivos fueron modificados:
pandas / _libs / tslibs / timedeltas.pyx
pandas / _libs / tslibs / timestamps.pyx

Tenga en cuenta que no hubo problemas en los siguientes. También puede marcar como hecho:
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

nota: este es mi primer PR. Avísame si necesitas mejorar algo.

Revisé el tema para actualizar la lista + verificar algunos archivos.

Archivos marcados como hechos sin ningún compromiso

(no es necesario cambiar nada):

  • [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 / formatos / css.py
  • [x] pandas / io / formatos / excel.py
  • [x] pandas / io / format / format.py
  • [x] pandas / io / formatos / html.py
  • [x] pandas / io / formatos / info.py
  • [x] pandas / io / formatos / latex.py
  • [x] pandas / io / formatos / printing.py
  • [x] pandas / io / formatos / 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 / format / test_format.py
  • [x] pandas / tests / io / format / test_printing.py
  • [x] pandas / tests / io / format / test_style.py
  • [x] pandas / tests / io / format / test_to_csv.py
  • [x] pandas / tests / io / format / test_to_html.py
  • [x] pandas / tests / io / format / test_to_latex.py

Archivos restantes para verificar:

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

Me ocupé de pandas/util/_validators.py . Muchos de estos otros archivos también me parecen bien.

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

Hola Matteo,
Estoy interesado en ayudar con este esfuerzo, pero soy nuevo en git y
contribuyendo a los pandas. ¿Podrías guiarme a través del
pasos ? ¿Quizás pueda configurar una pantalla compartida esta semana?

Gracias,
Andrés

El martes 26 de mayo de 2020 a las 15:12 Matteo Santamaria [email protected]
escribió:

Me ocupé de pandas / util / _validators.py. Muchos de estos otros archivos
ya me parece bien a mí también.

  • 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

-
Estás recibiendo esto porque estás suscrito a este hilo.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/pandas-dev/pandas/issues/29547#issuecomment-634307953 ,
o darse de baja
https://github.com/notifications/unsubscribe-auth/APG73XKAUDLFVVQXUS2SJETRTQ5DDANCNFSM4JLZCU5Q
.

Hola @ warden706 , en realidad también soy bastante nuevo aquí, así que no tendría mucho que mostrarte. He encontrado este recurso muy útil ya que he tropezado, deberías echarle un vistazo.

Hola,
bastante nuevo en contribuir también aquí. Me estoy ocupando de

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

Revisé estos otros archivos y me parece que está bien

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

También soy nuevo aquí.
tomaré

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

tengo una pregunta sobre el cambio de código.
por ejemplo, en pandas / tests / series / indexing / test_take.py, fragmento del código:

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

entonces mi sugerencia es reemplazarlo por:

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

es eso lo suficientemente bueno?

Hola,
Me gustaría hacer un PR, así que estoy haciendo la prueba, pero tengo un par de fallas. Así que intenté ejecutar pruebas también en master.
¿Es normal que ejecutar pytest pandas en un maestro bifurcado sin editar devuelva un par de errores?

El maestro generalmente debe aprobar las pruebas. Asegúrese de haber obtenido las últimas confirmaciones. ¿Qué pruebas fallan?

@matteosantama Saqué las últimas confirmaciones, reinstalé el entorno y volví a ejecutar las pruebas con pytest pandas . Estos son los resultados

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

Me di cuenta de que si ejecuto pruebas solo en el directorio único (por ejemplo, con pytest pandas/tests/io ), no hay fallas:

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

Desde el comentario de @OlivierLuG , parece que casi todos los archivos se han corregido o ya estaban bien sin ninguna modificación. Intentaré actualizar la lista sobre los archivos "aún abiertos".

Corregido

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

No es necesario modificar

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

Además, creo que también esto ya está bien.

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

Aún por verificar / corregir

  • [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 ¿tienes alguna actualización?

sigo recibiendo errores que no sé lo que significan.
cualquier ayuda será apreciada

¿Ha intentado obtener las últimas modificaciones en el maestro? Tal vez solucione algunas de las pruebas fallidas.

no ayudó.
si alguien más quiere tomarlo, puedes

Tengo una duda: cuando tenemos una situación como en 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'\\]")):
...

y así sucesivamente, ¿deberíamos transformar msg en una función y llamarla con diferentes valores de "Col"? ¿O es mejor dejarlo como está?

@MatteoFelici gracias por esa lista actualizada. Revisé los últimos módulos restantes que llamó y parece que está bien, así que creo que podemos cerrar este problema

¿Fue útil esta página
0 / 5 - 0 calificaciones