URL: https://linuxfr.org/news/dchars-pour-lire-ecrire-et-modifier-des-caracteres-unicodes-complexes Title: DChars, pour lire/écrire et modifier des caractères unicodes complexes Authors: Xavier Faure baud123, claudex, Benoît Sibaud, patrick_g et Xavier Teyssier Date: 2013年03月22日T17:10:36+01:00 License: CC By-SA Tags: unicode, sanskrit, hébreu, grec, ancien et python Score: 27 Dans le cadre d'un projet, j'ai eu besoin d'un module pour analyser et modifier les caractères complexes de certains systèmes d'écriture, en particulier en hébreu, grec ancien ou sanskrit. Mon code commence à devenir utilisable, je le publie donc sous une licence GLPv3 : [DChars](http://94.23.197.37/dchars/) est un module pour Python3. J'ai essayé de coller à certains principes facilitant le travail en communauté ainsi que l'écriture de code lisible : tests unitaires, code et commentaires écrits en anglais, surveillance de la qualité du code par Pylint, documentation fournie et écrite avec Sphinx. Concrètement, je cherche d'autres personnes susceptibles d'utiliser ou d'améliorer mon module. Si vous utilisez les langues concernées, dites-moi si ce que j'ai fait vous convient ! En particulier, si certains connaissent très bien la norme [ISO 15919](https://fr.wikipedia.org/wiki/ISO_15919 "Définition Wikipédia"), je suis preneur... De façon générale, n'hésitez pas à faire remonter vos remarques, je n'attends que ça, surtout si elles sont négatives ! ---- [DChars](http://94.23.197.37/dchars/doc/fr/index.html) ---- Concrètement DChars est un module qui substitue au type _str_ d'autres types, par exemple DStringGRC pour le grec ancien : ```python>>> from dchars.languages.grc.dchars import DStringGRC>>> string = DStringGRC("μῆνιν ἄειδε θεὰ Πηληϊάδεω Ἀχιλῆος")>>> print(string) "μῆνιν ἄειδε θεὰ Πηληϊάδεω Ἀχιλῆος" ``` La chaîne peut être translittérée (pour le grec ancien, j'ai implémenté trois méthodes différentes, l'une des trois étant choisie par défaut), mais il peut tout aussi bien s'agir **d'un fichier entier**, ce qui peut être fort pratique : ```python>>> string.get_transliteration() "m/\ênin )/aeide the\a Pêlêi:/adeô )Akhil/\êos" ``` À partir de là, il est facile d'inspecter la chaîne... ```python>>> string[1].tonos "περισπωμένη" ``` ... et de la modifier en profondeur : ```python>>> string[1].tonos = "ὀξεῖα">>> print(string) "μήνιν ἄειδε θεὰ Πηληϊάδεω Ἀχιλῆος" # notez le deuxième caractère ! ``` J'espère que mon code vous intéressera : merci à ceux qui m'auront lu !

AltStyle によって変換されたページ (->オリジナル) /