Repository navigation
Aviso de interrupção omite resume=True quando a entrada não é DataFrame - #301
Conversation
Com checkpoint_path, o aviso oferecia resume=True sobre a saída também para entrada list e dict, cuja saída não traz o texto. A via do resume=True só aparece quando a entrada é DataFrame, pandas ou polars, como já acontecia no aviso sem checkpoint_path (#277).
Bloco de evidênciaCaso concreto na base (
|
| Entrada | checkpoint_path |
Esperado ("Para retomar, ...") | Base | Ramo |
|---|---|---|---|---|
list |
sim | rode de novo com o mesmo checkpoint_path. | reprova (oferece resume=True) |
passa |
dict |
sim | rode de novo com o mesmo checkpoint_path. | reprova (oferece resume=True) |
passa |
DataFrame |
sim | rode de novo com o mesmo checkpoint_path, ou com resume=True sobre esta saída. | passa | passa |
list |
não | a entrada não é um DataFrame e a saída não traz o texto, então só um checkpoint_path permite retomar. | passa | passa |
dict |
não | idem | passa | passa |
DataFrame |
não | rode de novo com resume=True sobre esta saída. | passa | passa |
Na base, com o teste novo: 2 failed, 4 passed.
Suíte
Comando: uv run --extra dev --extra all --extra search-all --extra polars --extra excel --extra codex pytest -q -p no:cacheprovider --cov=dataframeit --cov-branch --cov-report=term-missing
| passados | pulados | falhas | cobertura | |
|---|---|---|---|---|
base ec332656 |
2192 | 0 | 0 | 99,96% (codex.py 723-724) |
ramo bbbfbcb0 |
2198 | 0 | 0 | 99,96% (codex.py 723-724) |
As duas linhas descobertas são o except ImportError do import opcional do openai_codex, que não roda com o extra codex instalado; a combinação local de extras não reproduz a cobertura combinada dos jobs do CI, e o mesmo par aparece na base. As linhas tocadas estão cobertas. ruff format --check, ruff check, ty check, vulture e deptry src saem com 0 no ramo.
Risco: baixo, só o texto de um aviso; desfazer com o revert do squash.
SHA revisado: bbbfbcb
Atualização do bloco de evidênciaPassada do simplificador de diff sobre Suíte depois do corte (mesmo comando do bloco anterior): 2198 passados, 0 pulados, 0 falhas, cobertura 99,96% com as mesmas SHA revisado: d5da258 |
…trada-lista # Conflicts: # CHANGELOG.md
…trada-lista # Conflicts: # CHANGELOG.md
Com
checkpoint_path, o aviso de execução interrompida (ProviderAbortError,ProviderUsageLimitError) dizia "rode de novo com o mesmo checkpoint_path, ou com resume=True sobre esta saída" para qualquer entrada. Com entradalistoudict, a saída não traz a coluna de texto, eresume=Truesobre ela levantaValueError, então a segunda via não funciona. O aviso semcheckpoint_pathjá fazia essa distinção.O que muda: o aviso só oferece
resume=Truesobre a saída quando a entrada é DataFrame (pandas ou polars), com ou semcheckpoint_path. Para as demais entradas, comcheckpoint_path, a mensagem manda só repetir a chamada com o mesmo arquivo. A condição "a saída traz o texto" passa a ser calculada uma vez e usada nos dois ramos.Teste novo em
tests/test_interrupcao.pyfixa o texto inteiro da via de retomada, ancorado no fim da mensagem, nas seis combinações de entrada (list,dict,DataFrame) com e semcheckpoint_path. Na base, as duas combinações delistedictcomcheckpoint_pathreprovam.docs/reference/exceptions.mdedocs/en/reference/exceptions.mdjá descrevem o comportamento certo ("com entrada que não é DataFrame, comolist, a saída não traz o texto, e só o mesmocheckpoint_pathpermite retomar"), e ficam como estão.Closes #277