Development #32815
python3 : déprécier le builtin @file@
0%
Description
N'existe plus en python3
Fichiers
Révisions associées
python3: deprecate file builtin (#32815)
Historique
Mis à jour par Paul Marillonnet il y a presque 5 ans
- Fichier 0002-python3-deprecate-file-builtin.patch 0002-python3-deprecate-file-builtin.patch ajouté
- Fichier 0001-python3-define-a-compat.FileType.patch 0001-python3-define-a-compat.FileType.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Mis à jour par Thomas Noël il y a presque 5 ans
Met l'affaire "FileType" dans les tests directement, inutile de "pourrir" authentic.compat avec ça.
Mis à jour par Paul Marillonnet il y a presque 5 ans
- Fichier 0002-python3-deprecate-file-builtin.patch 0002-python3-deprecate-file-builtin.patch ajouté
- Fichier 0001-python3-define-a-FileType-in-tests-test_commands.py.patch 0001-python3-define-a-FileType-in-tests-test_commands.py.patch ajouté
Ok oui c'est vrai.
Mis à jour par Paul Marillonnet il y a presque 5 ans
- Fichier 0002-python3-deprecate-file-builtin.patch 0002-python3-deprecate-file-builtin.patch ajouté
- Fichier 0001-python3-define-a-FileType-in-tests-test_commands.py.patch 0001-python3-define-a-FileType-in-tests-test_commands.py.patch ajouté
On va y arriver.
Mis à jour par Thomas Noël il y a presque 5 ans
- Statut changé de Solution proposée à Solution validée
Sounds good ; à pousser en un seul patch
Quand même, je ne pige pas trop le remplacement des simple « x=file.read » par des tordus « with open as f: x=f.read »
Mis à jour par Paul Marillonnet il y a presque 5 ans
Thomas Noël a écrit :
Quand même, je ne pige pas trop le remplacement des simple « x=file.read » par des tordus « with open as f: x=f.read »
C'est très simple, les chances de voir le patch acké par Benj sont multipliées par 3 si on parvient à placer des gestionnaires de contexte ☺
(ça permet aussi d'éviter une fermeture explicite du fichier, cette fermeture étant effectuée à la sortie du contexte.)
Mis à jour par Thomas Noël il y a presque 5 ans
Paul Marillonnet a écrit :
(ça permet aussi d'éviter une fermeture explicite du fichier, cette fermeture étant effectuée à la sortie du contexte.)
Sauf erreur de ma part, open().read() ferme le fichier aussitôt après le read. Non ? Ah, je découvre que c'est de la magie CPython.
Ok pour le with, donc.
Mis à jour par Paul Marillonnet il y a presque 5 ans
Ok oui, je pensais à un équivalent sans gestionnaire de contexte :
f = open(...)
f.read()
qui laisse des descripteurs de fichier ouverts, d'où, je crois, le conseil de Benj d'utiliser des gestionnaires de contexte.
Mis à jour par Benjamin Dauvergne il y a presque 5 ans
Thomas Noël a écrit :
Sauf erreur de ma part, open().read() ferme le fichier aussitôt après le read. Non ? Ah, je découvre que c'est de la magie CPython.
La réponse c'est peut-être1; mais avec with c'est certain et c'est comme ça qu'il faut faire et ça permet de prendre de bonnes habitudes de gestion des ressources en général, et en fait je trouve ça joli à force. Logiquement le compteur de référence doit tomber à zéro en sortie de scope et le descripteur de fichier être fermé, mais si il y a une exception dans read() ça peut ne pas le faire pour diverses raisons.
1 https://stackoverflow.com/questions/4599980/python-close-file-descriptor-question
Mis à jour par Benjamin Dauvergne il y a presque 5 ans
ducktype powa ! remplacé isinstance(x, file)
par hasattr(x, 'read')
.
Mis à jour par Benjamin Dauvergne il y a presque 5 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 23145898bde4f26d51c8dfedba59f8a980dabf79 Author: Paul Marillonnet <pmarillonnet@entrouvert.com> Date: Wed Apr 10 18:56:46 2019 +0200 python3: deprecate file builtin (#32815) commit a516e02de09eff340f37b3ded2e59d7a289d66f2 Author: Paul Marillonnet <pmarillonnet@entrouvert.com> Date: Wed Apr 10 19:20:46 2019 +0200 python3: define a FileType in tests/test_commands.py (#32815) as file is not a builtin anymore
Mis à jour par Frédéric Péters il y a presque 5 ans
- Statut changé de Résolu (à déployer) à Solution déployée
python3: define a FileType in tests/test_commands.py (#32815)