tarfile.TarFile.errors is initialized for some reason as None even though it really only accepts str
Personne n'a encore pris cette issue.
- Langage dominant
- Python
- Étoiles
- 77.2k
- Forks
- 35.9k
- Métriques de merge des PR
- Métriques de PR en attente
Description
Bug report
Bug description:
See the exact line here: https://github.com/python/cpython/blob/ee57221872ad009df648e22d2f113f907607ec16/Lib/tarfile.py#L1687
After that the errors is used only as string in encode/decode. And is initialized in the dunder init with default errors="surrogateescape".
So perhaps it would be a good idea to use errors="" in #L1687 ? or directly with the default errors="surrogateescape" ?
This was discovered as part of the typeshed, where tarfile.TarFile.errors was added into the allowed list since mypy complained: https://github.com/python/typeshed/blob/2ccc53bb6716463680fcf1d204642c46299b7f88/stdlib/%40tests/stubtest_allowlists/common.txt#L46C1-L46C16
I will add a PR here and to the typeshed if this gets approved.
CPython versions tested on:
3.13
Operating systems tested on:
Windows
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez à la ligne 1687 de Lib/tarfile.py et examinez l’initialiseur de TarFile ainsi que les utilisations ultérieures de errors dans encode/decode. Vérifiez l’entrée correspondante de l’allowlist de typeshed, puis confirmez que l’initialisation à l’exécution et le typage concordent ; mettez à jour les modifications correspondantes de CPython et de typeshed si nécessaire.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- backend
- Type d'issue
- Bug
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 38/100