Re: Python regex

Top Page

Reply to this message
Author: Yves Martin
Date:  
To: guilde
Subject: Re: Python regex
On Sat, 2023-02-18 at 10:14 +0000, Yth wrote:
> Le 18 février 2023 09:23:36 UTC, Patrice Karatchentzeff
> <patrice.karatchentzeff@???> a écrit :
> > Le sam. 18 févr. 2023 à 09:30, Yth <yth@???> a écrit :
> >
> > En fait, j'ai oublié de dire que python geulait sur la syntaxe
> > quand
> > j'ajoutais un \ (avec match ou find) :
> >
> >    textframe = re.find("Text\d+", obj)
> >                                 ^^^^^^^^^
> > SyntaxError: invalid escape sequence '\d'
>
> Mais là il fait mettre le r pour ne pas interpréter les caractères
> spéciaux :
> r"Text\d+"


Je rebondis sur le sujet en proposant à Patrice de vérifier un hexdump
du source pour s'assurer que le fichier Python ne commence pas avec le
BOM UTF-8, ou contiendrait un caractère UTF-8 pour la double-quote ou
le backslash au lieu de l'ascii correspondant.

Le nombre de fois où un copier-coller de ligne de commande ou de code
depuis un document "office" m'a fait perdre du temps, notamment ephen
au lieu du tiret, O au lieu de 0, quand le rendu visuel est (quasi)
identique m'a amené à contrôler directement le contenu texte... en mode
"binaire" ! (ou avec une fonte "terminale")

Idéalement, il faudrait un mode visuel dans les IDE pour "marquer au
fer rouge" les caractères non ascii dans les sources.

D'ailleurs les tentatives d'injection de code malveillant (Trojan
source) exploitant les séquences bidi Unicode ont d'ailleurs amené ce
genre d'avertissement dans les forges logicielles en ligne accessible
depuis navigateur... pour ne citer que GitHub, Bitbucket, GitLab.
https://www.01net.com/actualites/cette-attaque-quasi-indetectable-permet-de-corrompre-le-code-source-de-n-importe-quelle-application-2050662.html

<pub>
Du coup, je vois maintenant l'autre discussion qui débattait IDE, et
oui Emacs est très bien, et même si Patrice se plaint des propositions
"commerciales" que j'utilise (mon employeur se fournit chez JetBrains),
je recommande chaudement PyCharm en version communautaire qui fournit
un grand nombre de supports très pratiques:
- gestion des environnements et versions Python multiples, même
déportés dans une VM locale ou distance, du Docker ou WSL avec l'autre
système
- gestion des packages PIP
- prise en charge des frameworks de tests unitaires
- mode debug "fingers-in-the-noise" (même en remote)
- et tout le reste non spécifique à Python: client Git intégré,
analyseur de qualité comme SonarLint...

Je n'avais aucune pratique de Python à part quelques lectures et
l'usage du même IDE que pour mon language historique (Java) a
grandement facilité ma transition et m'a permis de rapidement
professionaliser mon projet...
Alors effectivement c'est une grosse usine mais il a été optimisé pour
les machines modernes, et vus les services fournis, je dirai "on n'a
rien sans rien". Bref, l'essayer c'est l'adopter et surtout ne pas
hésiter à lire la documentation au fur et à mesure des besoins, les
tutoriaux font gagner beaucoup de temps:
https://www.jetbrains.com/pycharm/
</pub>

Bonne semaine
--
Yves Martin