MakeMake The Dwarf Planet is a feed agregator.

Sur Lyon − Meetup le lundi 18 mai

by grewn0uille from AFPy discuss

Hello tout le monde,

Le prochain meetup sur Lyon a lieu le lundi 18 mai à 19h.

Rendez-vous chez Lowit (métro Part-Dieu) où Emmanuel nous parlera de microcontrôleurs et de MicroPython !

Excursion dans le monde des microcontrôleurs
May 18, 2026 7:00 PM (Europe/Paris) → May 18, 2026 9:00 PM (Europe/Paris)
https://www.meetup.com/fr-fr/python-afpy-lyon/events/314642594/

1 message - 1 participant(e)

Lire le sujet en entier

Lire la suite…

Configuration emacs « minimale » en 2026

by mdk from AFPy discuss

C’est la suite de mon sujet de 2021 : Emacs : aujourd'hui j'essaye lsp-mode.

En 2026 je migre de jedi qui n’est plus maintenu à zuban. J’en profite pour migrer de lsp-mode à eglot qui est devenu natif.

Déjà, à quoi ça ressemble :

Le paquet Debian que j’utilise est emacs-pgtk.

Ensuite, la config « minimale » (72 lignes) :

(require 'use-package)
(require 'package)
(package-initialize)

(setq package-archives '(("gnu" . "https://elpa.gnu.org/packages/")
                         ("melpa" . "https://melpa.org/packages/")))

(when (not package-archive-contents)
  (package-refresh-contents))

(use-package yasnippet
  :ensure t
  :config
  (yas-global-mode 1))

(use-package yasnippet-snippets
  :ensure t)

(use-package company
  :ensure t
  :hook
  (python-mode . company-mode))

(use-package envrc
  :ensure t
  :init (envrc-global-mode))

(use-package eglot
  :hook (python-mode . eglot-ensure)
  :config
  (add-to-list 'eglot-stay-out-of 'flymake)
  (add-to-list 'eglot-server-programs '((python-mode) . ("zuban" "server"))))

(use-package python
  :custom
  (python-indent-guess-indent-offset nil))

(use-package flycheck
  :ensure t
  :config
  (global-flycheck-mode t))

(use-package blacken
  :ensure t
  :commands (blacken-mode)
  :hook (python-mode . blacken-mode)
  :config
  (setq blacken-only-if-project-is-blackened t))

(use-package python-isort
  :ensure t
  :hook ((python-mode) . python-isort-on-save-mode)
  :config
  (setq python-isort-arguments '("--stdout" "--atomic" "-" "--profile=black")))

(use-package whitespace
  :diminish (whitespace-mode global-whitespace-mode whitespace-newline-mode)
  :hook ((python-mode) . whitespace-mode)
  :config
  (setq show-trailing-whitespace t)
  (setq whitespace-line-column 88)
  (setq whitespace-style '(face empty tabs lines-tail trailing)))

(use-package spacemacs-theme
  :ensure t
  :defer t
  :init
  (load-theme 'spacemacs-light t))

(global-font-lock-mode t)
(column-number-mode t)
(show-paren-mode t)

Le fichier se place dans ~/.emacs.d/init.el. La première fois qu’emacs démarre il télécharge tous les paquets décrits dans la config, donc le premier démarrage est long, c’est normal.

Maintenant pour qu’eglot puisse trouver zuban, pour que flycheck puisse trouver pylint, et pour que blacken-mode puisse trouver black le mieux c’est … un venv !

Et pour que le venv du projet soit chargé automatiquement par emacs j’utilise direnv, ça fait double usage : mes venv sont aussi activés automatiquement dans le shell !

Pour configurer direnv il faut un fichier .envrc à la racine du projet qui contient :

VIRTUAL_ENV=.venv
layout python3

Si c’est votre première utilisation de direnv il faut rajouter eval "$(direnv hook bash)" dans ~/.bashrc.
Il vous fera executer direnv allow pour l’autoriser à bosser, et hop, le venv est crée tout seul, et activé automatiquement par bash et emacs.

Faites-vous un alias ou une commande nommé venv pour gagner du temps sur la création de ce .envrc.

Il faut installer deux-trois trucs dans le venv :

pip install --upgrade zuban black mypy pylint

puis démarrer emacs :

emacs test.py

Pour ceux qui n’ont jamais lancé emacs avant, tapez Ctrl-h puis t, ça vous ouvrira le tuto interactif.

Ohhh, et j’ai configuré blacken-mode pour ne passer black à la sauvegarde que s’il trouve [tool.black] dans pyproject.toml, ça m’évite d’avoir emacs qui réecrit des fichiers dans des projets qui n’utilisent pas black, c’est la ligne blacken-only-if-project-is-blackened dans la config.

Quelques raccourcis importants :

  • M-. : c’est pour aller a la définition de quelque chose.
  • M-x eglot-rename pour renommer une variable (et toutes ses occurrences).
  • C-c ! n pour sauter a la prochaine erreur.

Ma configuration complète est ici : https://git.afpy.org/mdk/dotfiles/src/branch/main/.emacs.d/init.el, elle est plus longue : j’enlève les menus, le message d’accueil, la décoration de la fenêtre, j’ajoute du confort, et j’ai de la configuration C, rust, org-mode, je configure emacs en mode serveur (et j’utilise emacsclient), etc…

1 message - 1 participant(e)

Lire le sujet en entier

Lire la suite…

lsdisplay / lsgpu — lister écrans et GPUs depuis le terminal dans l'esprit de lspci, lscpu, lsusb: v.0.1.0 appel à tests

by géhème from Linuxfr.org

Le problème

On a lsusb, lspci, lscpu… mais rien pour les écrans ou les GPUs.
Pour savoir quel écran est branché sur quelle sortie, c'est la danse du
xrandr | grep connected, cat /sys/class/drm/card*/edid | edid-decode,
nvidia-smi

J'ai écrit deux outils pour régler ça.

lsdisplay

Liste les écrans connectés avec fabricant, modèle, numéro de série,
résolution, fréquence, diagonale, et dessine un schéma ASCII du layout :

$ lsdisplay

CONNECTED DISPLAYS
==================

  DP-4         1440x2560+0+0           27"  75Hz  Iiyama PL2792Q    DisplayPort  S/N:1152031921274   rot=left [PRIMARY]
  HDMI-A-2     1440x2560+1441+0        27"  75Hz  Iiyama PL2792Q    HDMI         S/N:1152032422031   rot=left
  HDMI-A-5     5376x3024+0+2561        65"  60Hz  Samsung QN800D    HDMI         S/N:94:e6:ba:dd:9a:7a

Total: 3 display(s) connected

LAYOUT
======

  +--------------+ +--------------+
  |              | |              |
  |     DP-4*    | |   HDMI-A-2   |
  |              | |              |
  +--------------+ +--------------+

  +------------------------------+
  |                              |
  |          HDMI-A-5            |
  |                              |
  +------------------------------+

Fonctionnalités :

  • Parse les EDID directement depuis /sys/class/drm (pas de dépendance externe)
  • Fonctionne sur X11 et Wayland (KDE, Sway, wlroots)
  • Mode --json pour le scripting
  • Mode --scan pour découvrir les Smart TV Samsung sur le réseau
  • Fichier d'overrides pour corriger les EDID buggés (Samsung, je te regarde…)
  • Python 3.6+, zéro dépendance

lsgpu

Liste les GPUs avec stats NVIDIA, mapping écran par sortie :

$ lsgpu

GRAPHICS CARDS
==============

  card0: NVIDIA GA107 [GeForce RTX 3050 6GB]
         Driver: nvidia | VRAM: 6 GB | GPU:0% MEM:2077/6144MB 37°C 16.7W
    ├─ DP-4: connected ← Iiyama PL2792Q 27"
    ├─ HDMI-A-2: connected ← Iiyama PL2792Q 27"


  card1: Intel Arrow Lake-S [Intel Graphics]
         Driver: i915
    ├─ HDMI-A-5: connected ← Samsung TQ65QN800DTXXC 65"

Total: 2 GPU(s), 3 output(s) connected

Fonctionnalités :

  • Stats NVIDIA (utilisation, température, puissance, mémoire)
  • Stats AMD via sysfs
  • Mode --watch avec sparklines en temps réel
  • Liste des processus utilisant le GPU
  • Python 3.6+, zéro dépendance Python

Installation

sudo cp lsdisplay.py /usr/local/bin/lsdisplay
sudo chmod +x /usr/local/bin/lsdisplay

Paquet .deb disponible aussi. Un seul fichier Python, pas de pip, pas de venv.

Appel à testeurs

C'est une v0.1.0 — testé sur ma config (GPU NVIDIA + Intel, KDE Wayland,
3 écrans dont 2 Samsung TV). J'aimerais des retours sur :

  • Configs AMD (j'ai le code mais pas le matos pour tester)
  • Wayland hors KDE (Sway, GNOME, Hyprland)
  • Écrans avec EDID exotiques
  • Suggestions d'affichage ou de fonctionnalités

Liens

Licence : GPL-2.0

Télécharger ce contenu au format EPUB

Commentaires : voir le flux Atom ouvrir dans le navigateur

Lire la suite…

Fonctionnement de Jupyter Lab/Notebook

by uneTanche from Linuxfr.org

Bonjour à tous,

Contexte:

Je cherche une alternative à mathlab simulink pour la mise au point d'algorithmes de contrôle et la modélisation de systèmes.

Après quelques essais (scilab xcos, modelica, octave …), c'est python qui a retenu mon attention et en particulier les notebook Jupyter et la bibliothèque control.

Ça fait quelques jours que je fais un essai sur la modélisation d'une régulation pour un générateur de courant mais certaines subtilités m'échappe.

En particulier, lorsque je veux modifier un paramètre dans une "cellule code" et la rejouer. Si cette dernière contient une courbe générer avec matplotlib, soit la courbe ne s'affiche pas, ou bien pas correctement, ou toutes les autres courbes s'en retrouve modifiées…

Matplotlib propose bien des exemples d'utilisation, mais comme mes essais, ils ne semblent fonctionner que si l'on exécute le "notebook" une seule fois.

Question:

L'utilisation de Jupyter notebook est-elle réservée à la documentation final du processus et non aux essais ? Ou bien je passe à côté de quelque chose ?

Télécharger ce contenu au format EPUB

Commentaires : voir le flux Atom ouvrir dans le navigateur

Lire la suite…

Fusion de comptes

by mapommBL from AFPy discuss

Bonjour,

suite à recréation d’un compte github, j’ai été obligé (?) de me recréer un compte sur votre site.

Serait-il possible de regrouper mon ancien compte mapomm??? avec mon nouveau compte mapommBL et ne laisser que mon compte mapommBL ?

Merci d’avance

7 messages - 3 participant(e)s

Lire le sujet en entier

Lire la suite…

[PYTHON] Besoin d'aide sur un exercice

by konzum from AFPy discuss

Je débute en programmation et je me suis heurté a une incompréhension sur la correction d’un exercice :

nombres = input("tapez votre suite de nombre séparé par des virgule")

liste = nombres.split(",")

liste_entier = []

for nombre in liste:

    nombre_entier = int(nombre)

    liste_entier.append(nombre_entier)

print("liste: ", liste_entier)

somme = 0

for nombre in liste_entier:

    somme += nombre

print("somme : ", somme)

moyenne = somme / len(liste_entier)

print("moyenne: ", moyenne)

nombre_superieur_moyenne = 0

for nombre in liste_entier:

    if nombre > moyenne:

        nombre_superieur_moyenne += 1

print("nombre suprieur: ", nombre_superieur_moyenne)

Ca peut paraitre évident pour certain mais je ne comprend pas pourquoi, à la ligne 4 ( for nombre in liste:) il y a ce “nombre” qui sort de nul part , alors que ma variable plus haut est “nombres”. J’ai cherché, pensant que “nombre” était peut être déjà connu par le logiciel, mais je ne trouve rien a ce sujet.

Je n’arrive pas à passer outre cette incompréhension, et cella me retarde dans mon apprentissage, si une personne avais l’amabilité de prendre un petit peu de son temps pour m’expliquer cela j’en serait comblé. Merci d’avance et je vous souhaite une agréable journée

6 messages - 2 participant(e)s

Lire le sujet en entier

Lire la suite…

Retours d'expérience de frameworks web et d'orchestration de workflows - lundi 27 avril 2026

by luc_sorel-giffo from AFPy discuss

  • Django Ninja : votre API nette et sans bavure ? - par Quentin Caron (profil LinkedIn), lead dev Python et expert technique chez Néosoft

Vous aimez Django mais vous avez préféré un autre framework pour écrire votre API ? Ce retour d’expérience sur Django Ninja vous fera peut-être changer d’avis. Après un tour d’horizon des frameworks web API Python permettant de planter le décor, découvrez les caractéristiques du framework, les difficultés rencontrées en 10 semaines d’utilisation et les contournements possibles pour devenir un véritable ninja des APIs.

  • Comparaison de 4 orchestrateurs de workflows open-source : airflow, argo, temporal.io, windmill par Jesshuan Diné (profil LinkedIn), ingénieur data et IA chez Crédit Mutuel Arkéa

Nos métiers intègrent de plus en plus de traitements d’ingestion et de remaniement de la donnée. J’ai eu besoin de faire un benchmark pour comparer différents frameworks d’orchestration open-source qui répondaient à mes besoins. Après une brève présentation des candidats et de leur différence de paradigmes, je vous présenterai la méthodologie que j’ai suivi pour les comparer (notamment concernant la performance de l’infrastructure) et les résultats.
Au menu :

  • une infra kubernetes
  • des workflows CPU-intensifs
  • une stack d’observabilité

Merci à Néosoft Rennes pour l’accueil du meetup :folded_hands:

Publication à relayer sur les réseaux si vous le souhaitez :

Inscription gratuite mais nécessaire sur :

1 message - 1 participant(e)

Lire le sujet en entier

Lire la suite…

Sur Lyon − Meetup le jeudi 23 avril

by grewn0uille from AFPy discuss

Bonjour tout le monde,

Le prochaine meetup à Lyon a lieu le jeudi 23 avril. Rendez-vous à 19h à la Cordée Jean Macé (métro Jean Macé / Saxe-Gambetta) !

Éden et Rémi parleront de musique avec Sardine :musical_notes: :fish:

Sardine : entrez dans le monde de la musique et du live coding avec Python
April 23, 2026 7:00 PM (Europe/Paris) → April 23, 2026 9:00 PM (Europe/Paris)
https://www.meetup.com/fr-fr/python-afpy-lyon/events/314118158/

1 message - 1 participant(e)

Lire le sujet en entier

Lire la suite…