Skip to content

Preservar tipos do polars nas colunas de entrada - #215

Closed
mayuriphad wants to merge 1 commit into
bdcdo:mainfrom
mayuriphad:fix/polars-dtype-roundtrip
Closed

mayuriphad wants to merge 1 commit into
bdcdo:mainfrom
mayuriphad:fix/polars-dtype-roundtrip

Conversation

@mayuriphad

Copy link
Copy Markdown
Contributor

O quê

Com entrada polars, as colunas que o dataframeit não toca voltavam com tipo diferente: Int64 com nulo virava Float64 (ids acima de 2**53 perdiam precisão) e Date virava Datetime[ms].

Por quê

to_pandas() leva inteiro com nulo a float64, e pl.from_pandas() não restaura o schema original.

Como

  • ConversionInfo guarda o schema polars de entrada.
  • _polars_to_pandas mantém inteiros com nulo como inteiros anuláveis do pandas.
  • _restore_polars_dtypes reaplica o tipo original às colunas de entrada na volta; uma coluna que não aceita o tipo fica como está.
  • Testes novos para inteiro com nulo, inteiro sem nulo, Date e o ramo de cast recusado. CHANGELOG.md atualizado.

Testes

  • pytest tests: mesmas 3 falhas de antes da mudança (sem relação) e +4 testes novos passando.
  • ruff check e ruff format --check passam.

Closes #195

to_pandas() turned an Int64 column with nulls into float64 (losing ids above 2**53) and from_pandas() returned Date as Datetime. Keep nullable integers through the pandas step and cast input columns back to their original polars dtype.

Signed-off-by: mayuriphad <mayuriphad656@gmail.com>
Copilot AI balanced review requested due to automatic review settings October 13, 2026 04:01

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@bdcdo

bdcdo commented Oct 13, 2026

Copy link
Copy Markdown
Owner

Muito obrigado pelo PR, @mayuriphad, e pelo cuidado com ele: o diagnóstico da causa está preciso, os testes cobrem os dois casos da issue e o CHANGELOG veio junto.

Os seus testes de inteiro com nulo e de Date entraram no #217, já mesclado, com coautoria sua no commit. Como ele cobre também os demais tipos do polars e os casos de retomada, fecho este PR em favor dele.

Obrigado de novo pela contribuição.

@bdcdo bdcdo closed this Oct 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Entrada polars volta com Int64 em Float64 e Date em Datetime

3 participants