Journal Python en Action, PDF Libre

Posté par  (site web personnel) . Licence CC By‑SA.
34
19
sept.
2011

dlfpiennes, dlfpiens, trolls.

Je viens vers vous, en écrivant ce journal, pour présenter mon PDF Libre.
Pour les plus pressé d'entre vous :

Je tiens un blog depuis quelques temps maintenant, où se côtoie deux de mes passions, programmation et monde Libre. J'ai eu l'occasion de m'intéresser plus récemment au langage Python, en y écrivant une vingtaine de billets. J'ai voulu prendre le temps de les rassembler sous un format PDF, d'un peu moins de 80 pages. Ce format s'y prête assez bien, aillant traité des sujets comme Ncurses ou les tests unitaires sous plusieurs angles, me permettant de les regrouper et classer chacun dans sa partie propre.

Le document est sous licence libre, la Creative Commons CC by-sa. Comme un PDF ne serait pas vraiment libre sans ses sources, elles sont disponible sur un dépôt Github, sous un format reStructuredText, dont le PDF est généré par l'intermédiaire de Sphinx.

Le document ne s'adresse pas forcément aux débutants de Python, ne revenant pas sur les bases et n'expliquant pas les boucles, il existe bien assez de ressources de qualités à ce sujet. Ce document s'adresse plus à ceux connaissant un peu Python, ou venant d'un autre langage, puisqu'il traite de sujet un peu plus large. Le plus simple encore pour avoir un aperçu des sujets est d'en jeter un œil au sommaire.

  1. Utilisation de Modules
    1. Consulter la documentation en local
    2. Piles et files avec Deque
    3. Tenir un fichier de log
    4. Script concret pour Urllib2
    5. Parser un fichier de configuration
  2. Python et Ncurses
    1. Transparence avec Ncurses
    2. Déplacement de fenêtre
    3. Menu navigable
    4. Visualiser et scroller un fichier
    5. Les scripts de démo fournis par Python
  3. Utilisation d'API
    1. Générateur de documentation avec Sphinx
    2. Client Twitter et Identi.ca
    3. Api Goo.gl et Oauth
    4. Request, HTTP pour les humains
    5. Scrapy, Crawler web
  4. Les Tests Unitaires
    1. Unittest
    2. Introduction à Nose
    3. Behavior Driven Devoloppment avec Lettuce
    4. Couverture de code
    5. Autotest avec Watchr

Le style utilisé est certainement plus proche du blog d'où il en est issue, entrainant un éventail large de sujets, proche de recettes, d'où le titre, Python en Action, il me fallait bien lui trouver un titre. J'en ai fais un remaniement pour l'occasion, pour en garder une cohérence, en rajoutant des précisions au besoin. Je pense que la difficulté et la spécificité sont croissantes au fil des chapitres, tout en étant très accessible aux débutants éclairés.

Pour anecdote, la partie 3.5, « Scrapy, Crawler web » contient l'explication en détail d'une méthode m'aillant servi à générer des graphiques sur les inscriptions de forums linuxiens, dont les résultats ont été sujet d'un journal dlfpien Encore une fois la pertinence n'est pas la panacée sur les stats linux..., dans le PDF, la méthode m'importe plus que le résultat.

Je mets ma timidité de côté, et je m'en remets à vos commentaires et critiques avisés, pour ce qui est mon tout premier PDF.

Merci.

  • # plus sur la forme -...

    Posté par  . Évalué à 1.

    Il semblerait que tout les exemples n'aient pas la meme coloration syntaxique, cf page 9 et page 11.

    chaptire 1.5.4, tu devrais mettre mettre des bullets - ahhh comment on dit en francais?! des puces ?- pour le try/catch et la has_section
    De meme pour le 3.5.1

    le bouquin est en francais, mais les chapitres sont en anglais - Chapter ONE

    et 4.5.2, le lien du billet n'est pas mis avec un renvoi un bas de page

    mes 3 cents en jetant un tout petit coup d'oeil.... je laisses d'autre ames plus expertes en python pour le contenu et d'autre yeux pour tout ce que j'ai pu manquer...

    • [^] # Re: plus sur la forme -...

      Posté par  (site web personnel) . Évalué à 2.

      Salut,

      Effectivement, le code de la page 9 n'a pas été reconnu automatiquement pour la coloration syntaxique, je ne sais pas pourquoi, mais Sphinx permet certainement de forcer la coloration. Il y a également quelques codes justement avec la partie 4.5, les codes en Ruby ne sont pas colorés.

      Pour les puces, tu as raisons, normalement, ce sont des titres de niveau h3, mais ils ressortent très mal, on a l'impression d'élément de liste à puces, sans puces... Donc soit je les passe vraiment comme tel, ou j'essaye d'arranger la feuille de style.

      Pour l'internationalisation des chapitres, sur la documentation ça l'air simple, il suffit de changer un paramètre en 'fr', en pratique ça coince… Mais j'aurais pu creuser d'avantage.

      Pour le renvoi en bas de page, c'est corrigé (sur Github).

      Merci pour ton retour, et tu as tout à fait raison que la forme est importante, même dans les détails.

      • [^] # Re: plus sur la forme -...

        Posté par  . Évalué à 2.

        Bonjour,

        Pour ce qui concerne l'internationalisation, afin d'avoir une francisation du fichier LaTeX, si l'on met les lignes suivantes dans le fichier conf.py cela marche.

        latex_elements = {
          'papersize':'a4paper',
          'babel': '\\usepackage[english,french]{babel}'
        }
        
        

        Cela changera aussi les puces puisqu'avec l'option french elles deviennent un tiret.
        • [^] # Re: plus sur la forme -...

          Posté par  (site web personnel) . Évalué à 2.

          Salut,

          Je viens d'essayer en local, effectivement lorsqu'il me disais qu'il manquais un argument, n'est plus un problème maintenant, j'ai bien un « table des matières » au lien de "content". Par contre, et c'est cocasse, j'ai maintenant "Chapitre one", "Chapitre two", cela dit, ça va dans la bonne voie !

          Merci.

          • [^] # Re: plus sur la forme -...

            Posté par  . Évalué à 2.

            Salut,

            Cela est du au fait que le style Bjarne. D'après la page [http://sphinx.pocoo.org/config.html?highlight=fncychap], ce style devrait être limité aux documents en anglais. En mettant :

            latex_elements = {
              'papersize':'a4paper',
              'babel': '\\usepackage[english,french]{babel}',
              'fncychap': '\\usepackage[Sonny]{fncychap}'
            }
            
            

            on utilise le style Sonny où les numéros de chapitre sont écrit en chiffre.
            • [^] # Re: plus sur la forme -...

              Posté par  (site web personnel) . Évalué à 1.

              Merci,

              Ça répond effectivement au problème, j'ai corrigé, et mis en ligne un pdf avec les diverses corrections. Comme je disais, c'était mon premier pdf, pas mal de petit détails à régler (ça n'excuses pas cela dit). En tout cas merci pour toutes ces indications.

  • # Typo

    Posté par  . Évalué à 4.

    Déjà merci pour cette doc. Je suis exactement dans le cas que tu cites : je sais faire du python (principalement en calcul numérique), mais je ne connaissais pas toutes ces fonctions de log, debug, config …

    Quelques petites typos :

    -p.11 s/je suis sur que vous trouverez à le faire/comment le faire/
    -p.11 s/age/âge/ (age est une haie)
    -p.12 s/age/âge/

    • [^] # Re: Typo

      Posté par  . Évalué à -3.

      Quelques petites typos :

      -p.11 s/je suis sur que vous trouverez à le faire/comment le faire/
      -p.11 s/age/âge/ (age est une haie)
      -p.12 s/age/âge/

      Ce qui est bien avec les forges c'est de pouvoir directement y faire ce genre de remarque.

      Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

      • [^] # Re: Typo

        Posté par  . Évalué à 4.

        Ce qui est bien avec les forges c'est de pouvoir directement y faire ce genre de remarque.

        C'est vrai que je n'aime pas ce système qui consiste à mettre ces quelques fautes sur la place publique, avant j'envoyais un message perso. Par contre, je n'ai pas forcement le temps de regarder comment marche une forge, chercher son mail et sur cette version de dlfp il n'y a pas de moyen simple de contacter une personne si elle ne partage pas son jabber id.

    • [^] # Re: Typo

      Posté par  (site web personnel) . Évalué à 1.

      J'ai corrigé la première typo, pour la deuxième, j'ai changé le marquage (monospace) pour bien faire ressortir dans le texte que c'est de la variable dont on parle, et comme il est préférable de ne pas mettre d'accents sur des variables.

      Merci.

    • [^] # Re: Typo

      Posté par  . Évalué à 1.

      Pour la documentation en local il y a mieux : installer python-doc (ou équivalent) et on retrouve dans /usr/share/doc/python-doc la documentation officielle telle qu’on l’obtient sur docs.python.org. Sous Debian si Apache est installé il suffit de taper localhost/doc/ (le dernier / est important).

      Sinon question typo. Il y a effectivement à revoir :

      p1
      s’y prêté, aspect, utilisé
      p2
      installer, en locale, installé
      p4
      celle-ci, écris, utilisé, bon en fait j’ai la flemme, j’arrête :), oh et puis merde, ça pique trop, effectuer
      p5
      parmis, fournis

    • [^] # Re: Typo

      Posté par  . Évalué à 0.

      Typos quatrième ligne, première page: l'URL du site web devrait être en "nicosphere.net"...

      • [^] # Re: Typo

        Posté par  . Évalué à 1.

        Pardon, une seule (la première), mes yeux brouillés au soir tombant ayant confondu les deux lignes de l'URL et de l'adresse mail.

        • [^] # Re: Typo

          Posté par  (site web personnel) . Évalué à 1.

          Merci de me l'avoir rappeler, je sais que j'ai voulu corriger, mais je ne sais plus pourquoi je l'ai oublié.

          C'est rectifié, merci :)

  • # Bravo !

    Posté par  . Évalué à 3.

    Merci vraiment pour cette doc. J’ai découvert des trucs qui me seront utiles…
    On ne creuse décidément jamais assez les merveilleuses librairies standard de Python. :)

    • [^] # Re: Bravo !

      Posté par  (site web personnel) . Évalué à 1.

      Merci de ton soutiens, c'est encourageant :)

      • [^] # Re: Bravo !

        Posté par  . Évalué à 1.

        Je trouve également ta doc intéressante et je trouve utile que tu la partage.
        Merci donc.

        Ps: p21 "La navigation serra naturel."

  • # Titre

    Posté par  . Évalué à 3.

    Sans vouloir entre dans une polémique, tout en louant ton initiative, ne pense tu pas que ce titre rappelle beaucoup une série d'ouvrages d'un éditeur bien connu ?

    Ceci ne pourrait t'il pas t'être préjudiciable par la suite ?

    • [^] # Re: Titre

      Posté par  (site web personnel) . Évalué à 2.

      Salut,

      Que ça rappel un titre connu, j'en ai conscience, et je ne m'en cache pas forcément, je n'ai pas vraiment pris le temps de penser à un titre. Je suis partie sur l'idée de regrouper les billets (au départ, je ne voulais mettre que la série sur curses d'ailleurs), et en regardant le résultat, ça m'a fait penser à sa série.

      Que ça me soit préjudiciable, je n'en sais rien, je ne pense pas, ce n'est pas comme si j'allais le vendre non plus, mais si on me fait bien comprendre qu'il est préférable de changer de titre, je n'ai aucun problème avec ça, mon but était de partager un contenu, une information, le titre n'est que accessoire pour moi.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.