URL:     https://linuxfr.org/news/python-pour-la-fin-de-l-annee-2021
Title:   Python pour la fin de l’année 2021
Authors: Ysabeau
        Nils Ratusznik et palm123
Date:    2021-12-19T22:00:17+01:00
License: CC By-SA
Tags:    epub, sigil et python
Score:   6


En 2019 [Oliver](https://linuxfr.org/users/oliver_h) commençait une série de dépêches sur le langage Python, série qu’il nous promettait pour la rentrée 2019. Divers aléas ont fait que cette série n’a pu être terminée qu’en juin 2021.


Et, comme cela forme un tout cohérent et qu’il y avait, dès le départ, l’idée de les réunir, l’aboutissement [est un](https://github.com/la415/epub-python/blob/docs/Python-linuxfr.epub), en fait plutôt [deux epub](https://github.com/la415/epub-python/blob/docs/Python-linuxfr-sans-tableau.epub) qui compilent les dépêches **et** leurs commentaires parce que la maison ne se refuse rien. Ils sont sur un dépôt [github](https://github.com/la415/epub-python) avec les images de couvertures en version svg et png. Idéalement, ils devraient être sur un dépôt plutôt LinuxFr que celui-là.

Vous n’échapperez, évidemment, pas aux petits secrets d’ateliers en fin de dépêche.


![Les pages de couverture](https://github.com/la415/epub-python/blob/docs/couv-python-illudepeche.png?raw=true)

----

[Python — partie 1 ― Popularité](https://linuxfr.org/news/python-pour-la-rentree-2019-partie-1)
[Python — partie 2 ― Python 2](https://linuxfr.org/news/python-pour-la-rentree-2019-partie-2)
[Python — partie 3 — Installation de Python et de paquets ](https://linuxfr.org/news/python-pour-la-rentree-2019-partie-3-installation-de-python-et-de-paquets)
[Python — partie 4 — Py Pyenv](https://linuxfr.org/news/python-pour-noel-2019-partie-4-py-pyenv)
[Python — partie 5 — Nix (et Guix)](https://linuxfr.org/news/python-partie-5-nix-et-guix)
[Python — partie  6 — Pip et Pipx](https://linuxfr.org/news/python-partie-6-pip-et-pipx)
[Python — partie 7 — Environnements virtuels](https://linuxfr.org/news/python-pour-noel-202x-partie-7-environnements-virtuels)
[Python — partie 8 — Pipenv ](https://linuxfr.org/news/python-partie-8-pipenv)
[Python ― partie 9 ― Formateur de code, analyse statique](https://linuxfr.org/news/python-partie-10-formateur-de-code-analyse-statique)
[Python — partie 10 — Entretiens](https://linuxfr.org/news/python-partie-11-entretiens)
[Le fichier epub avec les tableaux d’origine](https://github.com/la415/epub-python/blob/docs/Python-linuxfr.epub)
[La versions sans tableau plus accessible](https://github.com/la415/epub-python/blob/docs/Python-linuxfr-sans-tableau.epub)

----

# Un grand merci pour commencer
Merci à toutes les personnes qui ont contribué d’une façon ou d’une autre à ces dépêches, ou qui les ont commentées. Cela forme un corpus précieux qui réunit à la fois l’aspect didactique et les expériences.


Un merci tout particulier à :


- [Oliver](https://linuxfr.org/users/oliver_h) qui a commencé la série ;
- [nokomprendo](https://linuxfr.org/users/nokomprendo-3) qui est l’auteur principal du chapitre 5 sur Nix (et Guix) ;
- et à [Philippe F.](https://linuxfr.org/users/bluebird) qui a terminé la série.

Sans oublier le remotivateur, j’ai nommé : [tisaac](https://linuxfr.org/users/tisaac).

# Le, ou plutôt les livres électroniques


## Les sujets traités


Vous retrouverez les liens en bas de la page, mais une présentation succincte s’impose. Donc, on commence par la popularité de [Python](https://linuxfr.org/news/python-pour-la-rentree-2019-partie-1) (idéalement j’aurais dû mettre ça à jour, mais bon), pour dire ensuite au revoir à [Python 2](https://linuxfr.org/news/python-pour-la-rentree-2019-partie-2).

Après ces préliminaires, si je puis dire, on aborde le logiciel sous forme de tutoriels [Installation](https://linuxfr.org/news/python-pour-la-rentree-2019-partie-3-installation-de-python-et-de-paquets), [Py Pyenv](https://linuxfr.org/news/python-pour-noel-2019-partie-4-py-pyenv), [Nix et Giux](https://linuxfr.org/news/python-partie-5-nix-et-guix), [Pip et Pipx](https://linuxfr.org/news/python-partie-6-pip-et-pipx), les [environnements virtuels](https://linuxfr.org/news/python-pour-noel-202x-partie-7-environnements-virtuels) et [Pipenv](https://linuxfr.org/news/python-partie-8-pipenv). La dépêche sur le [formateur de code](https://linuxfr.org/news/python-partie-10-formateur-de-code-analyse-statique) est un retour d’expérience sous forme d’un dialogue à deux voix entre Oliver et Philippe F.

Et enfin, pour conclure en beauté, il y a une série d’[entretiens](https://linuxfr.org/news/python-partie-11-entretiens) d’utilisateurs du langage. Chacun avec une utilisation, et donc une expérience différente.

## Une compilation commentée
On a ainsi la compilation de la série de dépêches plus les commentaires. Les commentaires n’ont, toutefois, pas été tous été repris, pas uniquement par volonté de censure de ma part, mais était-il nécessaire de garder une série de commentaires portant sur une coquille ou complètement hors-sujet ? Ce qui, au final fait très très peu de commentaires en moins (dont des miens soit dit en passant). En revanche, tous les avatars sont partis à la trappe, c’est comme ça[^1]. J’ai opté pour ajouter un titre « Commentaires », balisé `<h2>` et d’insérer des filets (que je ne vois pas sur ma liseuse) entre chaque bloc de commentaires pour les différencier. La balise `<h2>` permet d’arriver directement sur les commentaires.

Par ailleurs, les seules images purement décoratives qui ont été gardées sont celles des entrées de chapitre sur lesquelles est basée la couverture des livres, soit dit en passant.


Il n’y a plus qu’une seule table des matières qui les réunit toutes. J’ai également supprimé des informations redondantes (licence par exemple) ou dépassées (PyConFR de 2019).


Le résultat final est très sûrement perfectible.


## Des ? Pourquoi deux fichiers epub ?


Sur ma liseuse, les tableaux de la première dépêche sur la [popularité de Python](https://linuxfr.org/news/python-pour-la-rentree-2019-partie-1) ne rendaient pas du tout et étaient illisibles. J’ai donc fait deux versions, identiques, à cela près qu’il y en a une qui a les tableaux, comme des tableaux et l’autre pour laquelle ils sont en texte, ce qui les transpose dans l’autre sens pour une meilleure lisibilité. Les classements en colonne par année et en ligne pour les langages, c’est bien quand il s’agit d’un tableau. Pour le texte, il vaut mieux avoir une ligne par année.

De cette façon, en plus c’est plus lisible pour les personnes qui ne peuvent pas lire avec leurs yeux. Et ça me paraît extrêmement important.


## Où il est question de licence
Les dépêches et les commentaires d’Oliver sont sous [licence CC0](https://fr.wikipedia.org/wiki/Licence_CC0). Celle par défaut de LinuxFr.org est la licence [CC-BY-SA 4](https://creativecommons.org/licenses/by-sa/4.0/deed.fr) (Attribution ― Partage dans les mêmes conditions). Les epub sont donc sous cette dernière licence, ce qui me paraît un bon compromis.


# Dans la fabrique des epub


## Les logiciels utilisés


Pour arriver au résultat, j’ai utilisé l’extension pour Firefox [Save as eBook](https://addons.mozilla.org/fr/firefox/addon/saveasebook/) dont j’avais touché deux mots [ici-même en septembre 2020](https://linuxfr.org/users/ysabeau/journaux/un-fichier-epub-d-une-depeche-ou-d-un-journal-avec-tous-les-commentaires) et sélectionné le texte (dépêches plus commentaires) pour chaque dépêche. Ça a généré un fichier epub de base mais pas du tout communicable en l’état pour plusieurs raisons outre les éléments déjà donnés :

- il y avait la « décoration » LinuxFr : notes, le couple pertinent-inutile, plus les « Discuter », etc. qui n’avaient plus, de mon point de vue, aucun intérêt en dehors du site ;
- il fallait ajouter les fichiers images (qui, sinon n’apparaissent pas sur l’epub, ou nécessitent une connexion) ;
- plus quelques fautes ici et là (je n’ai pas la prétention d’avoir tout corrigé).

Sans parler des titres des chapitres qui avaient besoin d’être homogénéisés. Et enfin, le fichier généré n’est pas terriblement bien formé apparemment. Il a fallu donc utiliser [Sigil](https://fr.wikipedia.org/wiki/Sigil_(logiciel)) (formidable éditeur epub) pour corriger tout ça. Et, évidemment, la postface, les remerciements et la transposition des tableaux en texte ont été faits à partir de LibreOffice. La couverture, quant-à-elle a été concoctée avec Inkscape.

## Travailler dans Sigil deux trois astuces


Petit rappel et au cas où : un fichier epub c’est en fait une collection de fichiers texte, ici un par chapitre, images, styles, etc. Le tout dans des dossiers bien spécifiques. Donc, quand on navigue dans Sigil pour modifier un epub, on navigue par fichier texte.


Pour tout dire, j’ai vraiment fait la connaissance de l’éditeur d’epub avec ce travail. Les éléments ci-dessous ne sont là que pour vous donner une idée de comment moi je l’ai utilisé.

Sigil a des boites détachables, comme Inkscape par exemple, je trouve ça très pratique avec deux écrans. Le principal avec le fichier à travailler, le `Navigateur` et la `Prévisualisation` dans l’autre ainsi que la boite `Insérer un caractère spécial`, très utile notamment pour les espaces insécables. En effet, on ne peut pas utiliser le clavier pour ça, à moins d’écrire le code html. Cela dit, avoir des connaissances de base en html est plutôt utile, ça permet de gagner du temps.

Je suggère très fortement de commencer par ouvrir l’`Éditeur de métadonnées` (menu `Outils` ou touche `F8`), en indiquant la langue (par défaut, chez moi c’est l’anglais apparemment), vous pourrez utiliser le module adéquat de correction orthographique (s’il y a du code, ce n’est pas forcément très utile) et en profiter pour donner un titre au document (dc:title), ainsi que d’indiquer le nom de l’auteur (dc:creator, ici j’ai mis « Collectif », c’est mieux qu’inconnu) et, éventuellement, l’éditeur (dc:publisher, ici LinuxFr.org). On peut en ajouter d’autres[^2]. Ces métadonnées sont vraiment importantes.


On peut utiliser les fonctions de recherche et de remplacement soit par fichier, soit pour tous les fichiers.


Revoir la table des matières est également indispensable, ne serait-ce que pour lui donner son nom, chez moi c’était « Table of Contents », pour un livre en français, ça ne sonne pas terrible. Noter que, quand on la génère, on peut sélectionner les niveaux retenus.

Pour les images, il faut commencer par les ajouter dans le dossier `Images` via le `Navigateur` et ensuite on peut les insérer dans le fichier texte sur lequel on travaille. Et, c’est aussi dans le `Navigateur` qu’on réorganise l’ordre des chapitres et on met la table des matières où on veut (par défaut elle est en deuxième position, je l’ai déplacé tout à la fin). Curieusement, si Sigil accepte les images au format svg pour les illustrations, il les refuse pour la couverture.

Et, évidemment, le logiciel est capable de corriger un fichier epub pas très correct.


## Transposer les tableaux


J’imagine qu’il est possible de faire un script pour ça, mais j’en serais bien incapable. Donc la procédure que j’ai utilisée, plus rapide à faire qu’à décrire :

1. copie du tableau à partir de la dépêche ;
2. collage dans Calc puis à nouveau copie de ce tableau **dans** Calc ;
3. toujours dans Calc, collage **transposé** ;
4. ajout des colonnes supplémentaires là où il faut, pour ici ajouter le rang du langage, les balises (ici `<p>`et `</p>` pour chaque ligne mais aussi `<b>` et `</b>` pour la mise en relief), rentrer le premier élément d’une colonne (par exemple le numéro avec les fioritures pour la lecture), sélectionner les cellules de la colonne et faire un `Ctrl + D` pour que tout ça se recopie vers le bas ;
5. copier et coller **sans** mise en forme le tableau dans Writer pour le transformer en texte ;
6. copier le texte obtenu et le coller dans Sigil.

# La question finale


Il y en aura d’autres ?


Non !


Sur ce bonne lecture et bonne fin d’année.


[^1]: Il aurait peut-être été intéressant de les garder, malgré le travail supplémentaire que cela impliquait de les ajouter, si tout le monde avait eu un avatar personnalisé. Ce qui n’est pas le cas.


[^2]: DC : pour métadonnées du Dublin Core qui traite de la description des ressources informatiques.