Planet Python Fr

Previous [3] Next

2021-09-21

AFPy - Emplois

Développeur Python (H/F)

Envie de rejoindre une société leader de dématerialisation de solution ? N'hésitez pas à me contacter

by AFPy - Emplois at 2021-09-21 19:20

2021-09-20

Human coders

Data engineer, data scientist et dataOps : Des métiers et des technologies complémentaires

3 de nos experts Data partagent leur vision sur leur métier respectif et l’écosystème Data. Ils présentent différentes technologies dont Python et Scala.


Commentaires
L'article Data engineer, data scientist et dataOps : Des métiers et des technologies complémentaires a été posté dans la catégorie Python de Human Coders News

by Joy Schlienger at 2021-09-20 09:52

2021-09-17

Olivier Pons

Python 3.10 : récapitulatif des nouveautés

Pep 604

Tester plusieurs types avec le | :

isinstance(5, int | str)
isinstance(None, int | None)
isinstance(42, None | int)
issubclass(bool, int | float)

Même chose pour les annotations :

def ma_fonction(
        ma_liste: List[int | str],
        param: int | None
    ) -> float | str:
    pass

Messages d’erreur plus parlants

  • L’erreur est maintenant affichée à la ligne de début du problème, et non plus lorsque l’interpréteur n’y comprend plus rien, l’exemple le plus marquant étant avec l’oubli d’une parenthèse fermante, ou d’une mauvaise indentation
  • Les messages ont été corrigés de manière à ce qu’ils soient plus clairs, avec des suggestions très utiles qui correspondent souvent à l’erreur

Le match/case

Le match/case de Python est similaire à l’instruction switch/case, qui est reconnue comme un « pattern matching structurel » en Python.

Le match/case de Python se compose de trois entités principales :

  1. Le mot-clé match
  2. Une ou plusieurs clauses case
  3. Du code pour chaque case

Là où Python se démarque des autres langages, c’est que l’on peut faire un match sur des patterns !

Exemples de match, du plus simple au plus avancé :


Match très simple, avec le « or »

exemple = True
match exemple:
    case (True|False):
        print("C'est un booléen")
    case _ :
        print("Ce n'est pas un booléen")


Récupérer les sous-patterns

def alarm(item):
    match item:
        case [time, action]:
            print(f"{time} ! C'est l'heure de {action}!")
        case [time, *actions]:
            print(f'{time} !')
            for action in actions:
                print(f"C'est l'heure {action}!")
alarm(['Bon après-midi', 'de travailler'])
alarm(['Bonjour', 'du petit déjeuner', 'se laver les dents'])


Nommer les sous-patterns

def alarme(item):
    match item:
        case [('bonjour' | 'bonsoir') as time, action]:
            print(f"{time.title()} ! Il faudrait {action} !")
        case _:
            print('Mot-clé invalide.')
alarme(['bonsoir', 'travailler'])
alarme(['bonjour', 'petit déjeuner', 'se laver les dents'])


Nommer les sous-patterns et filtres conditionnels

def alarme(item):
    match item:
        case ['bonsoir', action] if action not in ['travailler']:
            print(f'Journée finie ! Il faut {action}!')
        case ['bonsoir', _]:
            print('Il faut se reposer !')
        case [time, *action]:
            print(f'{time.title()}! Il faut {" et ".join(action)}.')
        case _:
            print('Mot-clé invalide.')
alarme(['bonsoir', 'travailler'])
alarme(['bonsoir', 'jouer'])
alarme(['bonjour', 'petit déjeuner', 'se laver les dents'])


Match sur des objets

class Move:
    def __init__(self, horizontal=None, vertical=None):
        self.horizontal = horizontal
        self.vertical = vertical
def str_move(move):
    match move:
        case Move(horizontal='est', vertical='nord'):
            print('Dir. nord-est')
        case Move(horizontal='est', vertical='sud'):
            print('Dir. sud-est')
        case Move(horizontal='ouest', vertical='nord'):
            print('Dir. nord-ouest')
        case Move(horizontal='ouest', vertical='sud'):
            print('Dir. sud ouest')
        case Move(horizontal=None):
            print(f'Dir. {move.vertical}')
        case Move(vertical=None):
            print(f'Dir. {move.horizontal}')
        case _:
            print('? Move inconnu ?')
d1 = Move('est', 'sud')
d2 = Move(vertical='nord')
d3 = Move('centre', 'centre')
str_move(d1)
str_move(d2)
str_move(d3)

by Olivier Pons at 2021-09-17 00:23

2021-09-14

Human coders

Veille technologique Python et Django

Des infos sur ma veille technologique, et une jolie liste de sites web.


Commentaires
L'article Veille technologique Python et Django a été posté dans la catégorie Python de Human Coders News

by Corentin Bettiol at 2021-09-14 17:39

AFPy - Emplois

Développeur Python backend (H/F)

Dans le cadre de notre expansion en France et à l’international, Germitec (société française spécialisée dans la conception et la vente de dispositifs médicaux high-tech) recrute un Développeur Python backend (H/F).

by AFPy - Emplois at 2021-09-03 11:00

AFPy - Emplois

Développeur Python

Participez à l’essor du 1er site de généalogie francophone !

by AFPy - Emplois at 2021-09-03 10:58

2021-09-02

Human coders

Comment activer la vérification de typage pour Python dans VSCode

Python supporte désormais le type hints. Dans cet article, nous allons voir comment avoir de l’IntelliSense pour le typage ainsi qu’avoir les erreurs de typage sur Visual Studio Code.


Commentaires
L'article Comment activer la vérification de typage pour Python dans VSCode a été posté dans la catégorie Python de Human Coders News

by Emmanuel Gautier at 2021-09-02 14:22

2021-08-30

Human coders

6 balises et filtres peu connus de Django

Le framework Django regorge de nombreux filtres et balises qu’il est possible d’utiliser directement dans un fichier HTML. Dans cette vidéo je vous présente 6 balises et filtres peu connus de Django qui vont vous permettre d’optimiser vos fichiers de templates.


Commentaires
L'article 6 balises et filtres peu connus de Django a été posté dans la catégorie Python de Human Coders News

by Thibault Houdon at 2021-08-30 22:57

2021-08-25

Human coders

Utiliser Tailwind CSS avec Django

Dans cette vidéo, je vais vous montrer comment utiliser le package django-tailwind pour utiliser Tailwind CSS à l’intérieur d’un projet Django.📖 L’article d…


Commentaires
L'article Utiliser Tailwind CSS avec Django a été posté dans la catégorie Python de Human Coders News

by Thibault Houdon at 2021-08-25 13:58

2021-08-23

Linuxfr.org

Bibliothèque vérification passe sanitaire

Bonjour,

J'ai une question simple : Savez vous si il existe un script python permettant de vérifier un passe sanitaire présent dans une image ?

J'ai fait une petite recherche et je suis surpris car ça ne semble pas exister …

Si vraiment il n'y a rien je vais en faire une, si vous avez des pistes d'ailleurs je suis preneur car je manque un peu de temps :)

Merci,

Commentaires : voir le flux Atom ouvrir dans le navigateur

by Watchwolf at 2021-08-23 16:48

2021-08-17

Linuxfr.org

Doctoshotgun pris d'assaut par le variant étudiant

Salut les moules,

En mai, au moment où la vaccination fut ouverte à toute la population française et que les centres furent pris d'assaut, j'ai créé doctoshotgun, un programme basé sur woob, qui permet d'automatiser la réservation de créneau de vaccination sur Doctolib.

Jolie illustration du fonctionnement du script parce que ça a quand même de la gueule

Partant évidement d'un besoin personnel (lassitude de faire F5 sur Doctolib, pas envie de gruger, et vitemadose s'avérant au final très peu opérant), doctoshotgun a pas mal tourné et j'ai même reçu des contributions rajoutant la gestion de la version allemande de Doctolib, pays où il semble très difficile (en tout cas avant l'été) d'obtenir un rendez-vous de vaccination.

Mais depuis un mois j'ai reçu une quantité astronomique de pull requests (>200) provenant d'étudiants d'une université canadienne, visant… à appliquer des design pattern complètement inappropriés.

Je trouve que c'est une très bonne initiative que les professeurs incitent leurs étudiants à contribuer au libre. D'ailleurs woob en avait bénéficié il y a quelques années, par le biais d'un prof français, plusieurs de ses élèves ayant amélioré la couverture de tests. Le gain pour les étudiants était réel (comprendre le code source d'un logiciel libre, en extraire ce qui peut être intéressant d'automatiser comme tests, participer au processus d'acceptation d'une pull request dans une communauté libriste, etc.) autant que pour le logiciel.

En revanche ici, je m'interroge déjà sur le choix du logiciel, Doctolib n'opérant pas outre-atlantique : les étudiants n'ont aucun usage du logiciel et aucun moyen de tester. Ensuite, sans vouloir pointer de pull request en particulier, on peut voir dans la longue liste qu'ils ne se sont pas embarrassés de trouver du sens à ce qu'ils faisaient, ni ne se sont posés la question de ce que ça peut apporter au logiciel, et la moitié du temps il y a carrément des erreurs de syntaxe.

Il en résulte qu'il s'agit plus d'une perte de temps qu'autre chose pour le mainteneur du logiciel, et que j'ai pris la résolution de ne plus du tout regarder le code et de clore les PR immédiatement. J'ai également pris le parti de contacter la prof pour lui faire part du désagrément, ce à quoi j'ai reçu une réponse un peu lunaire me disant que j'étais le seul à lui avoir fait ce genre de retours… ce qui n'a pas empêché d'avoir une nouvelle vague ces derniers jours.

Ce n'est pas sans rappeler l'histoire de Digital Ocean qui sponsorisait les contributions au FOSS et qui a provoqué un afflux massif de PR inutiles sur github.

Et vous, avez-vous déjà reçu des contributions d'étudiants qui furent pertinentes ? Sur quoi portaient-elles ? De manière générale, comment est-ce que ça peut être organisé pour que ce soit au moins neutre ou au mieux bénéfique pour les projets tout en étant formateur pour les étudiants ?

Commentaires : voir le flux Atom ouvrir dans le navigateur

by moules at 2021-08-17 12:30

2021-08-16

Human coders

Le vocabulaire de python

Dans cette vidéo je vous explique quelques termes importants que vous retrouverez dans votre apprentissage de Python et notamment ceux qui ne sont pas toujou…


Commentaires
L'article Le vocabulaire de python a été posté dans la catégorie Python de Human Coders News

by Thibault Houdon at 2021-08-16 16:44

2021-08-08

Human coders

Python 3.10 est disponible

Python 3.10 (rc1) est sorti le 2 août 2021, après quinze mois de développement (dont cinq à cheval sur les bêta et les rc de Python 3.9). Il reste deux mois avec des candidats (RC) avant la sortie définitive, prévue le 4 octobre 2021.

Voyons ce que cette version apporte comme nouveautés…


Commentaires
L'article Python 3.10 est disponible a été posté dans la catégorie Python de Human Coders News

by Camille Roux at 2021-08-08 02:35

2021-07-31

Human coders

Les annotations de type avec Python

Les annotations de type est une nouveauté de Python 3.5 qui est de plus en plus utilisée par les développeurs Python.Vous allez voir que cela a beaucoup d’av…


Commentaires
L'article Les annotations de type avec Python a été posté dans la catégorie Python de Human Coders News

by Thibault Houdon at 2021-07-31 22:18

Previous [3] Next