MakeMake The Dwarf Planet is a feed agregator.

Python 3.15 introduit le mot-clé lazy pour les imports paresseux

by Camille Roux from Human coders

Après trois ans de débats et deux PEPs, Python 3.15 intègre officiellement les imports paresseux via le mot-clé lazy. Meta et Hudson River Trading avaient déjà implémenté cette fonctionnalité dans leurs forks de CPython, avec des gains impressionnants : jusqu’à 70% de réduction du temps de démarrage et 40% de mémoire économisée. Le PEP 690 avait été rejeté pour son approche globale, tandis que le PEP 810 a été accepté à l’unanimité grâce à son design explicite et les preuves d’efficacité en production.


Commentaires
L'article Python 3.15 introduit le mot-clé lazy pour les imports paresseux a été posté dans la catégorie Python de Human Coders News

Lire la suite…

Sur Lyon − Meetup le 19 mars

by grewn0uille from AFPy discuss

Hello tout le monde,

Le prochain meetup à Lyon est le 19 mars, à 19h, où @fcodvpt nous parlera de MkDocs !

Nous serons accueillis par OVHcloud (métro Garibaldi).

Créer un site web facilement avec MkDocs… c'est fini ?
March 19, 2026 7:00 PM (Europe/Paris) → March 19, 2026 10:00 PM (Europe/Paris)
https://www.meetup.com/fr-fr/python-afpy-lyon/events/313505021/

1 message - 1 participant(e)

Lire le sujet en entier

Lire la suite…

Lecture de plusieurs pistes avec QMediaPlayer - PySide 6

by mahmoud from AFPy discuss

Bonjour tout le monde,

J’essaie de créer un programme qui doit lire des pistes mp3, j’ai opté pour QMediaPlayer, le widget de Qt pour atteindre mon objectif, mais il se trouve que si je lui fournis deux fichiers à lire, il ne lit que le dernier, je pense que c’est parce que le programme suit son cheminement et que la seconde directive écrase la première et que c’est pour ça qu’il ne lit que le dernier fichier fourni, je joins ici mon code dans l’espoir de trouver de l’aide.

self.player=QMediaPlayer()
self.audioOutput = QAudioOutput()

self.player.setAudioOutput(self.audioOutput)

self.player.setSource(QUrl.fromLocalFile(“sound/001000.mp3”))

self.player.play()

while self.player.isPlaying():

time.sleep(2)

self.player.setSource(QUrl.fromLocalFile(“sound/001001.mp3”))

self.player.play()

3 messages - 2 participant(e)s

Lire le sujet en entier

Lire la suite…

Conférences éclair APRIL 2026

by fcodvpt from AFPy discuss

bonjour à toutes et à tous,

L’assemblée générale de l’April aura lieu samedi 28 mars 2026 à Paris (Jussieu), l’AG est réservée aux membres de l’April mais un temps de conférences éclairs ouvert à toute personne, membre ou pas de l’April, est prévu le matin de 10 h à 12 h.

Outre l’intervention (et donc faire découvrir un sujet), cela peut apporter à la personne :

  • rencontrer d’autres libristes
  • découvrir plein de sujets sans crainte de s’ennuyer
  • partager un repas tiré du sac sur le temps de midi dans un esprit convivial

Pour réussir une session de conférences éclairs, il faut des intervenants et des intervenantes. Nous en attendons une quinzaine.

Le format court, 6 minutes, et le contexte amical offrent un cadre rassurant.

Si vous êtes sur Paris ou alentours, n’hésitez pas à postuler

1 message - 1 participant(e)

Lire le sujet en entier

Lire la suite…

Selenium >> Anubis et cie

by jtremesay from Linuxfr.org

Vous faites chier avec vos trucs genre Anubis qui cassent mes petits scrapers python :(

Là, je voulais gentiment scraper les missions sur le Fandom de Cyberpunk 2077 pour pouvoir faire mon arbre de mission.

Et pouf, on se fait rembarrer parce qu'on utilise pas un vrai navigateur :

$ curl -v https://cyberpunk.fandom.com/wiki/Cyberpunk_2077_Main_Jobs
> Host: cyberpunk.fandom.com
> User-Agent: curl/8.18.0
> Accept: */*
> 
< HTTP/2 403

Dans ces cas là, pas le choix, Selenium WebDriver.

WebDriver est lib multilangage pour contrôler un navigateur web tel que firefox ou chrome.

Minimal Viable Product®

#!/usr/bin/env python3
from pathlib import Path

from selenium import webdriver
from selenium.webdriver.common.by import By


def main():
    output_dir = Path("html")
    output_dir.mkdir(exist_ok=True)

    driver = webdriver.Firefox()
    driver.get("https://cyberpunk.fandom.com/wiki/Cyberpunk_2077_Main_Jobs")

    links = [
        (link.get_attribute("title"), link.get_attribute("href"))
        for link in driver.find_elements(By.CSS_SELECTOR, ".navbox li a")
    ]
    for link_title, link_href in links:
        page_file = output_dir / f"{link_title}.html"
        if page_file.exists():
            print(f"{link_title} already exists, skipping")
            continue
        print(f"Saving {link_title} from {link_href}")

        driver.get(link_href)
        content_node = driver.find_element(By.CSS_SELECTOR, ".mw-parser-output")
        page_file.write_text(content_node.get_attribute("outerHTML"))

    driver.quit()


if __name__ == "__main__":
    main()

j'trouve ça moins élégant que Hishel. Mais bon.

Modern Problems Require Modern Solutions

Télécharger ce contenu au format EPUB

Commentaires : voir le flux Atom ouvrir dans le navigateur

Lire la suite…