background preloader

Python

Facebook Twitter

Handling errors and exponential backoff. We have recently added a new section to the Google Documents List API documentation, titled Handling API errors. A number of developers in the forum have asked what to do when certain requests cause errors, and this documentation responds to their general need for better information. This new documentation details all errors and the scenarios that cause them. We strongly recommend that both new and advanced Google Documents List API developers read the section thoroughly.

An important technique described in the new docs is exponential backoff. Exponential backoff helps clients to automatically retry requests that fail for intermittent reasons. Exponential backoff can be implemented in all of the Google Data API client libraries. Import randomimport time def GetResourcesWithExponentialBackoff(client): """Gets all of the resources for the authorized user Args: client: gdata.docs.client.DocsClient authorized for a user. Web crawler with python twisted - Hemanth.HM. Python Shortcuts for the Python Beginner - Max Burstein's Blog. Python Shortcuts for the Python Beginner (Posted on January 26th, 2013) The following are just a collection of some useful shortcuts and tools I've found in Python over the years.

Hopefully you find them helpful. Swapping Variables x = 6y = 5x, y = y, xprint x>>> 5print y>>> 6 Inline if Statement print "Hello" if True else "World">>> Hello Concatenations The last one is a pretty cool way to combine objects of two different types. nfc = ["Packers", "49ers"]afc = ["Ravens", "Patriots"]print nfc + afc>>> ['Packers', '49ers', 'Ravens', 'Patriots']print str(1) + " world">>> 1 worldprint `1` + " world">>> 1 worldprint 1, "world">>> 1 worldprint nfc, 1>>> ['Packers', '49ers'] 1 Number Tricks #Floor Division (rounds down)print 5.0//2>>> 2#2 raised to the 5th powerprint 2**5>> 32 Be careful with division and floating point numbers. print .3/.1>>> 2.9999999999999996print .3//.1>>> 2.0 Numerical Comparison This is a pretty cool shortcut that I haven't seen in too many languages.

List Comprehension Into this: Les articles pour apprendre Python, dans le bon ordre :-) Ceci n’est pas un cours complet et cohérent sur “apprendre à programmer avec Python”. Pour ça voyez plutôt le site du zéro ou le livre gratuit de Swinnen. Ceci est une compilation de tous les cours et tutos du blog, filtrés, et ordonnés de manière cohérente. C’est bordélique, y a des trous partout, mais il y a aussi des connaissances que vous ne trouverez nulle part ailleurs aussi bien expliquées qu’ici. Ce qu’il faut savoir Aller plus loin Les outils autour de Python Cookbook Les exercices Passage à Python 3 Culture générale autour de Python. Understanding Python and Unicode. How to convert string with timezone info to date in python | David Euler on coding and design. Python community. Plongez au coeur de Python. L’opérateur splat (l’étoile: *) en Python. L’utilisation du signe étoile (*, dit opérateur « splat ») en Python est très simple, mais certains cas sont peu intuitifs.

Les nouveaux venus ont souvent besoin d’un peu plus d’explications que ce que donne la doc. Les utilisateurs d’autres langages sont généralement déroutés, car ils sont habitués à certaines fonctionnalités qu’on ne retrouve pas en Python. Ce que * ne permet pas de faire Il n’y a pas de pointeur en Python, et les passages par référence sont automatiques. Du coup : N’existe pas en Python. Les usages basiques de * La multiplication et la puissance fonctionnent comme on l’attend : Mais déjà, Python se démarque du lot, car l’opérateur * est surchargé par défaut, et peut s’appliquer aux chaines de caractères et aux listes. Pour les listes, c’est plus subtil. En revanche, multiplier une liste d’objets modifiables ne fait que répéter la référence vers cet objet : On a l’impression que le comportement est le même que précédemment, en fait pas du tout.

Unpacking Python 3.5. Google Python Style Guide. No whitespace inside parentheses, brackets or braces. No whitespace before a comma, semicolon, or colon. Do use whitespace after a comma, semicolon, or colon except at the end of the line. Yes: if x == 4: print x, y x, y = y, x No: if x == 4 : print x , y x , y = y , x No whitespace before the open paren/bracket that starts an argument list, indexing or slicing. Yes: dict['key'] = list[index] No: dict ['key'] = list [index] Surround binary operators with a single space on either side for assignment (=), comparisons (==, <, >, !

Don't use spaces around the '=' sign when used to indicate a keyword argument or a default parameter value. Yes: def complex(real, imag=0.0): return magic(r=real, i=imag) No: def complex(real, imag = 0.0): return magic(r = real, i = imag) Don't use spaces to vertically align tokens on consecutive lines, since it becomes a maintenance burden (applies to :, #, =, etc.

Django

Qu’est-ce qu’on peut faire avec Python ? “Ouai, j’ai entendu parlé de Python, mais je sais pas… On peut faire quoi avec ?” Des jeux vidéos et des films Python étant très ami avec le langage C (l’implémentation de base étant CPython, et les bindings C étant faciles et courant), on peut faire des choses demandant pas mal de patate. PyGame, une lib pour créer des jeux en 2D: Et Blender, un modélisateur 3D dont le moteur de scripting est Pythonphone: Civilization IV utilise également Python pour la plupart de ses tâches, Battlefield 2 pour ses addons, et Eve Online, pour la partie serveur. Du web Ma devise: si Youtube est écrit en Python, ça doit suffire pour mon usage. Python ne vient pas avec des tas de raccourcis pour créer un site Web par défaut comme PHP, mais il existe de nombreux excellents outils pour ça. 0bin a été écrit avec Bottle Du scripting Ben oui quand même, à la base Python c’est un langage de scripting.

Et le programme génère automatiquement le check des arguments, et un “usage”: Mais également aussi le --help: Des pilotes. Dois-je apprendre Python 2 ou Python 3 ? Les deux versions étant incompatibles, et Python 3 ayant plein de super fonctionnalités que Python 2 n’a pas, mais la V2 étant encore très répandue, on peut se demander lequel on doit apprendre. Etat du lard Python 3 permet de s’affranchir de beaucoup de problèmes d’encoding en utilisant unicode par défaut. A partir de la version 3.3, il va venir avec un virtualenv intégré, et distutils2, rendant le packaging et le déploiement beaucoup plus simple. Sans compter la délégation à un sous générateur. Plus besoin non plus d’utiliser ‘object’ dans l’héritage, et des tas de libs nettoyées. Python 2 lui est néanmoins présent encore partout: Ubuntu est toujours en 2.7, et passera en 3 dans la prochaine version, mais laissant la possibilité d’installer la 2.Mac OS utilise toujours la 2.6 par défaut.Certains serveurs Web sont toujours en 2.4 (!)

Enfin, l’outil 2to3 permet de convertir automatiquement, et facilement, la plupart des codes de Python 2 vers Python 3. Apprentissage et usage. Installation de Django sur un serveur mutualisé OVH - Michael ChicheMichael Chiche. <stdin> | Bazar / Django on OVH. Comment installer un site Django sur un serveur OVH. Disclaimer Si vous cherchez un hébergeur, tournez vous plutôt vers Gandi ou l'association toile libre. OVH c'est en effet illustré à plusieurs reprises par sa politique répressive et injuste envers ses clients suspectés d'enfreindre la législation sur le droit d'auteur.

Voir notamment l'article de Numerama. Intro Basé sur Mettre à jour le $PYTHONPATH. Architecture des fichiers cgi-bin/ django.cgi [django-project]/ [applications]/ static/ templates/ settings.py … lib/ python/ django/ (autres librairies nécessaires) elementtree/ (pour markdown) markdown/ www/ .htaccess staticmedia Les fichiers en italique sont des liens symboliques. django.cgi L'original peut être téléchargé ici: Remplacer les chemins et les noms de projet en fonction. Pour voir le déboguage Django, remplacer la dernière ligne par: .htaccess.

S blog - Come here to get some fresh air! Comme tous les ans, j'écris un article sur l'évolution du projet Reflectiv ainsi qu'une petite réflexion personnelle. Cela fait maintenant 3 ans que c'est le cas (2008, 2009, 2010) et c'est un rite que j'aime prendre, qui permet de voir ce qui a été accomplit et ce qu'il reste à faire. En commençant par un petit compte rendu sur l'année 2010, l'ensemble est mitigé: Nos trois principaux projets (Skual, GSpanel et le framework Catapult) n'ont pas très bien évolué. Skual et GSpanel toujours au stade de projet et le framework n'a pas vraiment été retravaillé depuis sa première sortie. J'ai tenté de le refaire de fond en comble, mais rien d'officiel n'en est sorti. Mais tout n'est pas perdu, j'ai l'idée de base pour un framework performant et complet, reste plus qu'à lier toutes les briques ensembles. Durant cette année, nous avons aussi mis en place un nouveau projet, pendant la fuite de pétrole géré par BP.

Voilà pour ce premier article de l'année. How To Install Django On OVH.net - Thomas Rabaix. Cet article explique comment installer django sur les serveurs mutualisés d'ovh.com. Django ne peut fonctionner seulement en mode cgi, donc la performance ne sera pas au rendez-vous. Mais cela conviendra tres bien pour des sites a faible fréquentation. Voici les détails techniques à la date de publications : Python : v2.4 Plan ovh.net : 240 Django : Unicode r5489 1. Structure des dossiers /projects/mysupersiteweb - django : code source de django, le repertoire django/django - trunk : code source du project /www : répertoire www de votre compte - django.cgi : cgi qui appel django - media : lien symbolique vers /projects/mysupersiteseb/trunk/media - .htaccess : cache le cgi pour les url 2. django.cgi Ce code provient du ticket [1] qui donne diverses solutions pour l'utilisation de django en cgi.

Il faut rajouter une ligne qui correspond on chemin absolue de /projects/mysupersiteweb. Sys.path.append("/YOURHOMEDIRECTORTY/USERNAME/projects/mysupersiteweb") 3. .htaccess 4. settings.py 5. Human Coders News. Docs_v3_example.py - gdata-python-client - Google Data APIs Python Client Library.