Vue lecture

La 4G avec un Raspberry Pi Pico ? C’est possible !

Il y a un peu plus de trois ans, je vous présentais déjà la carte NadHAT MK2, basée sur un modem 4G A7682E, imaginée et fabriqué en France par Garatronic et distribuée par McHobby. Cette carte bénéficie d’un support sérieux et de bibliothèques bien suivies, ce qui la distingue de nombreuses productions asiatiques. Aujourd’hui, place […]

Cet article La 4G avec un Raspberry Pi Pico ? C’est possible ! a été publié en premier sur Framboise 314, le Raspberry Pi à la sauce française.....

  •  

Dead Domain Discovery DNS - Une veille mortuaire pour les domaines

Vous naviguez sur le web en mode pépouze comme tous les jours… Et comme tous les jours, votre navigateur charge des scripts, des CSS, des cookies, des images, parfois des iframes. Et malheureusement, certains de ces trucs viennent de domaines qui n’existent plus. Vous ne vous en rendez pas compte et votre navigateur non plus. Mais Dead Domain Discovery DNS le sait, lui. Et il va vous le dire.

Dead Domain Discovery DNS , c’est un outil créé par Lauritz Holtmann , un chercheur en sécurité allemand et c’est un DNS forwarder UDP super léger codé en Python qui écoute sur le port 53 de votre ordinateur et note tous les domaines qui ne répondent plus. Ce n’est donc pas un scanner actif mais plutôt un observateur passif qui regarde passer les requêtes DNS et repère les morts.

Vous configurez Dead Domain Discovery comme votre serveur DNS primaire comme ça, toutes vos requêtes DNS passent par lui. Il forward ensuite ça vers un resolver upstream, genre Google DNS ou Cloudflare. Si un domaine ne résout pas, il réessaye sur un resolver secondaire mais si le secondaire échoue aussi, il marque alors le domaine comme “potentiellement mort” puis toutes les 15 secondes, il vous envoie un message contenant les nouveaux domaines HS découverts.

Les notifications partent sur Telegram, par email, ou via un webhook selon ce que vous voulez. Rassurez-vous, y’aura pas de fausse alerte à répétition puisqu’un domaine notifié une fois ne l’est plus pendant un certain temps.

L’intérêt pour les chercheurs en sécurité, c’est que les domaines morts sont une surface d’attaque intéressante. Un domaine expire, quelqu’un d’autre le réenregistre mais comme les enregistrements DNS qui pointaient vers l’ancien propriétaire existent toujours, ça ouvre des portes pour mettre en place des sous-domaines, des CNAME, charger des scripts externes autorisés…etc car tout continue de pointer vers le domaine mort. Ça permet de contrôler une partie du trafic autorisé.

Cette attaque est connue et s’appelle le subdomain takeover ou domain hijacking. Par exemple en 2024, l’attaque Sitting Ducks a mis plus d’un million de domaines à risque , exploitée par des cybercriminels russes. Et début 2025, des domaines expirés ont permis de contrôler plus de 4000 backdoors sur des systèmes gouvernementaux, académiques et privés. La campagne SubdoMailing a même utilisé plus de 8000 domaines légitimes pour envoyer des emails de phishing, en exploitant leur réputation pour contourner les filtres anti-spam. Donc autant vous dire que c’est un vrai problème…

Dead Domain Discovery vous aide donc à trouver ces domaines avant qu’un attaquant ne le fasse. Ensuite, si le domaine est réenregistrable, vous avez 2 options. Soit vous le réenregistrez vous-même pour sécuriser votre infrastructure, soit vous signalez le problème au propriétaire du site qui référence ce domaine HS.

L’infra recommandée par Lauritz pour faire tourner Dead Domain Discovery est un Raspberry Pi configuré comme DNS primaire de votre réseau. Faible conso, c’est toujours allumé, et ça permet de tout surveiller en continu. Mais vous pouvez aussi le déployer sur un VPS si vous voulez monitorer un réseau distant.

Notez que les notifications Telegram nécessitent un bot API token et un chat ID. L’email passe par du SMTP classique et les webhooks acceptent des headers personnalisés, ce qui est pratique si vous voulez intégrer ça dans votre système de monitoring existant.

L’outil dispose aussi d’une extension Chrome qui fais la même chose et scanne les pages web pour iframes, scripts et autres styles externes, puis vérifie si leurs domaines résolvent. Même auteur, même principe, mais côté navigateur. L’extension utilise l’API Google DNS pour vérifier les domaines et ne communique aucune donnée à son auteur. Vous scannez, vous voyez les morts au combat, et ensuite, vous pouvez agir.

Bref, vous l’aurez compris, Dead Domain Discovery ne vous protègera pas directement mais vous dira juste quels cadavres traînent dans votre réseau.

À vous ensuite de les enterrer comme il se doit.

  •  

MicroPython: Mesurer la vitesse de l'air avec le capteur FS3000

Amis de MicroPython... Bonjour,

Cela faisait longtemps que nous n'avions pas eu l'occasion de porter un nouveau pilote sous MicroPython. 

Renesas FS3000

Cette fois, nous nous sommes penchés sur le capteur FS3000  de Renesas qui mesure la vélocité de l'air. Capteur que l'on retrouve sur les breakout FS3000 de SparkFun.

Capteur FS3000 de SparkFun

Ce type de capteur est principalement utilisé dans des systèmes de refroidissement ou de conditionnement d'air. Comme il dispose d'une interface I2C, il est très facile de l'exploiter avec de nombreux microcontrôleur.

Les cartes breakout existent en deux versions:

  • FS3000-1015 mesurant des flux jusqu'à 15m/s (54 Km/H).
  • FS3000-1005 mesurant des flux jusqu'à 7ms/s  (25 km/H).

Pilote MicroPython

Bien que SparkFun propose un pilote MicroPython --ce que je salue-- celui-ci est construit sur une surcouche d'abstraction permettant permettant d'utiliser le capteur avec CircuitPython et MicroPython.

Etant un fan inconditionnel de MicroPython, je pense qu'il est préférable de disposer d'un code qui va droit au but... avec le moins de détour possible! C'est ainsi que l'on maintient une efficacité optimale d'exécution.

J'ai décidé de recréer un pilote à partir du code Arduino. En effet, il à été plus facile de travailler à partir du code Arduino que de suivre la couche d'abstraction CircuitPython/MicroPython.

Le pilote alternatif est disponible sur notre dépôt esp8266-upy/qwiic-ait-velocity .

Brancher sur un Raspberry-Pi Pico

Le schéma suivant indique comment brancher le capteur sur un Pico à l'aide d'un câble Qwiic (qui transporte un bus I2C).

Brancher un capteur FS3000 sur un Raspberry-Pi Pico
 

Du code pour le peuple

Après avoir transféré la bibliothèque airspeed sur la plateforme MicroPython, il ne reste plus exécuter l'exemple ci-dessous.

from machine import I2C,Pin
from airspeed import FS3000, AIRFLOW_RANGE_15_MPS
import time

# Raspberry-Pi Pico
i2c = I2C( 1, sda=Pin.board.GP6, scl=Pin.board.GP7 )
# Adresse par défaut
air_speed = FS3000( i2c )

# air_speed.set_range( AIRFLOW_RANGE_7_MPS )
air_speed.set_range( AIRFLOW_RANGE_15_MPS )

while True:
	print( "FS3000 lecture brute:", air_speed.read_raw() ) # 125ms acquisition
	#  lecture en metre par seconde, retourne un float de 0 - 7.23 pour FS3000-1005, 0 - 15 pour FS3000-1015 
	airflow_mps = air_speed.read_mps()
	if airflow_mps != None: # retourne None en cas d'erreur CRC!
		print( "   m/s:", airflow_mps ) 
		airflow_kmh = airflow_mps*3600/1000
		print( "   Km/h:", airflow_kmh ) 
		airflow_mph = airflow_mps*2.2369362912
		print( "   Miles/h:", airflow_mph ) 
	time.sleep( 1 )

Ressources

MCHobby investit du temps et de l'argent dans la réalisation de traduction et/ou documentation. C'est un travail long et fastidieux réalisé dans l'esprit Open-Source... donc gratuit et librement accessible. 

SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.

  •  

Construire un chronomètre scolaire autonome avec Raspberry Pi Pico et écran OLED

Le 1/1000ème de seconde est sans doute superflu, mais il illustre bien la précision qu’il est possible d’obtenir avec un microcontrôleur moderne comme le Raspberry Pi Pico. Ce projet vous propose de réaliser un chronomètre autonome, pensé pour des jeux ou activités scolaires, doté d’un écran OLED bien lisible et alimenté par une batterie LiPo. […]

Cet article Construire un chronomètre scolaire autonome avec Raspberry Pi Pico et écran OLED a été publié en premier sur Framboise 314, le Raspberry Pi à la sauce française.....

💾

  •  

L’euphorie autour de l’IA fait capoter le rachat de Core Scientific par CoreWeave

Jeudi dernier, les actionnaires de Core Scientific ont rejeté une offre d’acquisition intégralement en actions formulée par CoreWeave, leur partenaire et concurrent. Évaluée à 9 milliards de dollars lors de son annonce, la proposition n’a pas convaincu les investisseurs qui espèrent désormais des perspectives bien plus lucratives. Le principal détenteur de parts, Sina Toussi via ... Lire plus

L'article L’euphorie autour de l’IA fait capoter le rachat de Core Scientific par CoreWeave est apparu en premier sur Fredzone.
  •  

La Python Software Foundation refuse 1,5 million de dollars du gouvernement américain

Qui dirait non à 1,5 million de dollars ? À une époque où l'open-source peine à financer sa propre sécurité, le choix de la Python Software Foundation (PSF) a de quoi surprendre. Pourtant, son conseil d'administration a voté à l'unanimité pour rejeter une aide cruciale de la part du gouvernement américain. La raison : une […]
  •  

RT1010-Py : MicroPython à 500 MHz sur le Chipset NXP

Bonjour à tous,

Aujourd'hui, nous avons l'occasion de nous pencher sur le microcontrôleur MicroPython le plus rapide à ce jour.

RT1010-Py

IMXRT1010RM de NXP qui équipe la carte RT1010-Py d'Olimex, une carte de développement Cortex M7 fonctionnant à 500 MHz. soit 4 fois plus rapide que le RP2040 avec MicroPython pré-installé.

carte RT1010-Py d'Olimex

Avec un Cortex M7 et un support DSP, ce microcontrôleur sera surtout intéressant pour les applications en besoin de réactivité et de puissance de calcul (unité de calcul en virgule flottante à double précision).

Nous avons travaillé/collaboré sur le manuel utilisateur et la documentation afin de rendre la carte de développement et son DevKit plus accessibles.  Vous savez... dès qu'il s'agit de MicroPython, on ne se tient plus!

Brochage du RT1010-Py (par MCHobby)

Nous avons apporté quelques ressources graphiques mais également étayé la documentation avec des exemples et des ressources utiles autour pour MicroPython. Nos apports les plus significatifs restant l'exemple I2S, le support WS2812/NeoPixel et la gestion du PMIC (gestion d'alimentation intégrée au RT1010) qui permet, par exemple, de maintenir la RTC à l'heure alors que le MCU est arrêté.

  • MIMXRT1011DAE5A running at 500Mhz
  • 128KB de RAM RAM
  • 2MB de FLASH SPI
    • 3x UARTs
    • 2x bus SPI matériel
    • 2x bus I2C matériel
    • 1x bus I2S (il y en a un second mais pas encore testé)
  • 4 contrôleurs PWM (avec sorties complémentaires pour créer des circuits push-pull)
  • USB 2.0 OTG
  • Connecteur Micro SD
  • RTC avec cristal 32.768 kHz
  • Bouton RESET
  • Bouton BOOT (pouvant servir de bouton utilisateur)
  • Connecteur fUEXT (flat ribbon) avec 3.3V, GND, I2C, SPI, UART
  • Connecteur GPIO breadboard friendly
  • Dimensions: 53.34 x 25.4 mm 

Cette plateforme existe depuis un moment mais le support MicroPython est maintenant mature. 

RT1010-Py DevKit

RT1010-Py DevKit

Le kit de développement RT1010-Py propose:

Comme pour le RT1010-Py, nous avons participé à la rédaction de son manuel utilisateur et aux ressources graphiques facilitant la prise en main.

 

Brochage des connecteurs UEXT

Edge connector du RT1010Py-DevKit

Toute l'information nécessaire pour débuter facilement avec cette plateforme sous MicroPython.

Ressources

MCHobby investit du temps et de l'argent dans la réalisation de traduction et/ou documentation. C'est un travail long et fastidieux réalisé dans l'esprit Open-Source... donc gratuit et librement accessible. 

SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.

  •  

LADA - L'IA qui dé-pixelise les aubergines

Vous connaissez l’Article 175 du Code Pénal japonais ?

Non ? Hé bien croyez le ou non, mais c’est une loi de 1907 qui interdit les représentations explicites d’appareils reproducteurs. Les japonais sont des anges, ils n’ont ni zézette, ni pépette ^^. Du coup, tous les films adultes japonais sont pixelisés depuis plus d’un siècle. 118 ans que ça pixelise à tout va mais LADA vient de sortir et va changer cela ! En fait c’est une IA open source qui retire la pixelisation sur les vidéos.

Mais avant, revenons un peu sur cette loi bizarre. L’Article 175 date de la période Meiji, et il classe comme obscènes les représentations explicites d’organes génitaux. Cette définition légale de l’obscénité, c’est donc du contenu qui excite sexuellement, offense la pudeur, et viole les concepts moraux. Et les sanctions sont assez élevées : 2 ans de prison et 2,5 millions de yens d’amende. Du coup, tous les studios auto-censurent leurs productions à base de pixelisation, floutage, barres de censure et j’en passe. Leur traditionnelle mosaïque, n’est donc pas une coutume, mais un moyen de contourner cette loi centenaire.

C’est pour cela qu’ un dev anonyme a sorti LADA , un outil Python open source qui retire la pixelisation des vidéos. Vous prenez une vidéo JAV censurée (Japanese Adult Video), vous la passez dans LADA, et l’IA détecte alors les zones pixelisées et les restaure. Et tout cela en temps réel si vous avez un bon GPU ou via un export si vous êtes plus patient.

Techniquement, LADA utilise deux types de modèles IA . Le premier pour la détection et le second pour la restauration. Plusieurs déclinaisons des modèles sont dispo si vous voulez plus de précision ou de qualité… Et pour les faire tourner, vous avez besoin d’un GPU Nvidia CUDA, idéalement une RTX 20xx ou plus récent, avec 4 à 6GB de VRAM pour du 1080p. Et pour les fans de 4K, comptez 6 à 8GB de RAM.

Après au niveau des résultats, c’est assez aléatoire. Parfois ce sera bien, parfois ce ne sera pas foufou(ne).

Et sinon comme ça s’installe ? Et bien ce sera via Flatpak pour Linux via Flathub , Docker en CLI si vous aimez les conteneurs, ou en décompressant l’archive .7z standalone sur Windows.

Y’a une interface CLI pour les puristes, une GUI pour les autres puis vous chargez votre vidéo, vous choisissez vos modèles de détection et restauration, vous lancez, et ça traite. Vous pouvez regarder ensuite le résultat (en temps réel si votre GPU suit).

Maintenant, concernant la légalité de la dé-censure, j’imagine que c’est OK si c’est pour une utilisation personnelle hors du Japon. Par contre, si vous êtes au japon, interdiction d’utiliser ce truc évidemment !

Merci à ce coquin de Lorenper pour la découverte 🙏

  •  

Deep Eye - Le scanner de vulns multi-IA

Ce serait cool si on pouvait réunir les Avengers des LLMs pour les faire bosser ensemble sur de la recherche de faille de sécurité ? OpenAI, Anthropic, X.AI et Meta ensemble contre les forces du mal, c’est maintenant possible avec Deep Eye , un super scanner de vulnérabilités qui transforme les quatre IA rivales en équipe de pentesteurs. Vous allez voir, c’est assez génial !

Deep Eye, c’est donc un outil Python open source qui scanne les sites web et les API pour trouver des vulnérabilités. SQL injection, XSS, command injection, SSRF, path traversal, authentication bypass, au total y’a plus de 45 méthodes d’attaque automatisées. Vous lui indiquez une URL, et il teste tout en switchant entre les services d’IA selon le contexte.

Dans le contexte d’un pentest légitime, Deep Eye a même trouvé comment parler aux IA pour qu’elles acceptent de pondre du code un peu sensible. Et ça tombe bien car chaque IA a ses forces et ses faiblesses. GPT-4 par exemple excelle sur les payloads créatifs et les contournements de filtres. Claude lui est plus méthodique, et capable de mieux analyser le contexte et de génèrer des attaques adaptées au framework détecté. LLAMA en local quand à lui est rapide et ne coûte rien en appels API. Et Grok ? Bah il a le mérite d’être dispo même s’il est loin d’être le meilleur.

Deep Eye en tout cas est capable des les utiliser toutes selon la situation. Pour l’installer, ça se passe en 3 commandes :

Vous installez ça comme ceci :

git clone https://github.com/zakirkun/deep-eye.git
cd deep-eye

Puis sous Windows :

cd scripts
./install.ps1

Ou sous macOS / Linux :

chmod +x scripts/install.sh
cd scripts
./install.sh

Ensuite, vous n’avez plus qu’à configurer vos clés API dans config/config.yaml puis à le lancer comme ceci avec Python :

python deep_eye.py -u https://example.com

Et c’est parti pour le scan ! Il commencera par de la reconnaissance passive, énumèrera les DNS, découvrira les sous-domaines, testera les fameuses 45 méthodes d’attaque, génèrera les payloads avec les IA, et vous sortira un rapport incroyable (ou pas) en PDF, HTML ou JSON.

Bien sûr, Deep Eye est conçu pour des tests de sécurité autorisés uniquement donc utilisez le uniquement sur vos propres systèmes, ou sur des systèmes pour lesquels vous avez une autorisation d’agir écrite car vous le savez, scanner un site sans permission, c’est illégal !!!

Bref, ça ne remplace pas encore de vrais pentesters mais ça peut permettre de faire un peu d’analyse en amont histoire de voir où on met les pieds.

Merci à lorenper pour la découverte 🙏

  •  

CanSat: Module GPS

Bonjour à tous,

Nombre d'entre-vous savent que nous sommes impliqué dans le projet CanSat (voir précédents articles sur le sujet CanSat). 

Nous poursuivons les travaux sur Kit CANSAT version 2, l'occasion de s'intéresser à des extensions utiles.
Pour rappel, notre kit utilise un Raspberry-Pi Pico et du code Python sur microcontrôleur (MicroPython).


Documentation Open-Source disponible sur le Wiki de MCHobby.

A propos de CanSat

CanSat est un concours visant a stimuler l'apprentissage des sciences dans le domaine de l'AéroSpatial en réalisant un mini-satellite (la CanSat) pas plus grande qu'une boîte de Soda. Ce satellite est envoyé et éjecté à 3000m d'altitude à l'aide d'une roquette. C'est à partir de ce moment que votre projet capture les données et les envois au sol.

Si vous voulez en apprendre plus sur le concours CanSat, je vous invite à visiter la page d'accueil CANSAT sur EseroBelgium.be .

Module GPS pour CanSat

Dans les divers modules envisagé, il y a le module GPS/GNSS destiné à communiquer la position de la CanSat durant son vol.

Ci-dessous le module en cours de validation.

CANSAT-GPS-V2 par MCHobby

Ainsi, une variante de l'attache parachute (dit CanSat-BUN) pour l'équiper d'un  GPS Ultime. 

Etant donné que ce module est supposé se retrouver sur le dessus de la CanSat (pour exposer l'antenne vers le ciel), le point de connexion est reporté sous la carte. 

Un simple câble Grove permettra de raccorder le GPS sur l'entrée UART de la CANSAT en deux clicks.

CANSAT-GPS-V2 par MCHobby

La carte expose également les deux signaux supplémentaires:

  • 1pps : Pulsation à très précisément 1 Hertz (1 pulsation par seconde)
  • nRest : Reset du module GPS. Placer cette broche au niveau bas réinitialise le module GPS.

A propos du module GPS Ultime

C'est que le breakout GPS/GNSS produit par AdaFruit dispose d'une excellente module GPS/GNSS disposant d'une grande sensibilité et d'une antenne intégrée (dite Patch Antenna).

Même avec son antenne Patch, le démarrage à froid de ce module permet d'obtenir un fix GPS/GNSS relativement rapidement (de l'ordre de la minute).
Tandis que s'il est utilisé avec un pile CR2032, le démarrage à chaud permet de réduire drastiquement le temps du fix GPS/GNSS.

Le GPS-Ultime est capable d'offrir un rafraîchissement des données jusqu'à 10 fois par secondes (10 Hz).

Support MicroPython

Le dépôt cansat-belgium-micropython reprend la bibliothèque lib/adafruit_gps.py résulte d'un précédent portage Arduino vers MicroPython.
Maintenant compatible avec les trames GNSS, la bibliothèque permet de tester les scripts d'exemples test-gps pour CanSat :

cansat-belgium-micropython

Le script simpletest.py permet de collecter les données du GPS et d'en afficher les données. 

========================================
Fix timestamp: 10/18/2025 17:03:51
Latitude: 50.69063 degrees
Longitude: 4.400778 degrees
Fix quality: 1
# satellites: 10
Altitude: 110.0 meters
Speed: 0.36 knots and 0.666468 km/h
Track angle: 159.4 degrees
Horizontal dilution: 1.19
Height geo ID: 47.4 meters
========================================
Fix timestamp: 10/18/2025 17:03:52
Latitude: 50.69063 degrees
Longitude: 4.40078 degrees
Fix quality: 1
# satellites: 10
Altitude: 110.0 meters
Speed: 0.31 knots and 0.573903 km/h
Track angle: 159.4 degrees
Horizontal dilution: 1.19
Height geo ID: 47.4 meters

Il est possible de visualiser les coordonnées dans google maps en saisissant les coordonnées "50.69063 ,  4.400778" (lattitude , longitude) dans la zone de recherche.

Où acheter

  •  

Listing top Pypi keywords | BigQuery Datasets - PyPI Docs

Using Google bq CLI, the following command allows to get the top Pypi keywords from the bigquery-public-data.pypi.distribution_metadata table:

bq query --use_legacy_sql=false 'SELECT keyword, COUNT(*) as keyword_count FROM `bigquery-public-data.pypi.distribution_metadata`, UNNEST(SPLIT(keywords, ", ")) as keyword GROUP BY keyword ORDER BY keyword_count DESC LIMIT 100'

Result for the top-15 keywords:

  • python : 128555 appearances
  • DuckDB Database SQL OLAP : 70739 appearances
  • ai : 64997 appearances
  • tensorflow tensor machine learning : 51144 appearances
  • pulumi : 50076 appearances
  • api : 47986 appearances
  • probabilities probabilistic-graphical-models inference diagnosis : 46552 appearances
  • rust : 45607 appearances
  • cli : 39512 appearances
  • OpenAPI : 38814 appearances
  • sdk : 38060 appearances
  • llm : 37487 appearances
  • OpenAPI-Generator : 36734 appearances
  • database : 35578 appearances
  • automation : 34393 appearances

Note that this is a very basic query, that does take into account that some packages have a lot more versions published on Pypi than others.


Permalien
  •  

Spotlight on pdfly, the Swiss Army knife for PDF files

pdfly logo

Project documentation: pdfly.readthedocs.io

pdfly is the youngest project of the py-pdf organization. It has been created by Martin Thoma in 2022.

It's simply a CLI tool to manipulate PDF files, written in Python and based on the fpdf2 & pypdf libraries.

I'm a maintainer of the project 🙂

What can it do & what's next?

Find out by reading the full article


Permalien
  •  

pdoc - La documentation Python sans documentation

Vous avez déjà passé plus de temps à configurer Sphinx qu’à coder votre projet Python ? Bienvenue au club !

Et oui, paradoxalement, parfois documenter son code devient plus compliqué que d’écrire le code… Vous voulez juste afficher vos docstrings joliment, mais avant ça il faut vous taper 200 pages de doc, choisir parmi 47 thèmes, configurer des dizaines d’extensions et comprendre la syntaxe reStructuredText. Breeeef, la flemme !

Heureusement, il existe une alternative qui va vous réconcilier avec la documentation : pdoc.

pdoc, c’est un outil de documentation Python qui ne nécessite pas de documentation. Vous tapez simple pdoc votre_module et c’est tout. Pas de fichier de config interminable, pas de choix existentiels entre différents builders, pas de migration depuis votre version de Sphinx de 2018 qui refuse de compiler.

Ça génère directement une belle doc à partir de votre code existant !!

Si vous avez déjà écrit des docstrings propres et utilisé les type annotations de Python, vous avez déjà fait 100% du boulot car pdoc se contente de prendre ce qui existe et de l’afficher élégamment. Pas de traduction, pas de réécriture, pas de fichiers .rst à maintenir en parallèle de votre code.

Votre code EST la documentation et ça c’est beau !

L’outil comprend les docstrings au format numpydoc et Google-style, fait des liens automatiques entre les identifiants, respecte votre variable __all__ et génère du HTML standalone que vous pouvez héberger n’importe où. Il y a même un serveur web intégré avec live reload pour développer votre doc en temps réel.

Pour mettre ça en place, faut installer pdoc avec

pip install pdoc

Puis vous lancez

pdoc ./votre_projet.py

ou

pdoc nom_de_votre_module

Et c’est tout !

Bien sûr si vous bossez sur un gros projet avec des besoins spécifiques, des guides utilisateurs complexes, des dizaines de pages de tutoriels et une doc multilingue, Sphinx reste le roi, mais pour la grande majorité des projets Python, ceux qui ont juste besoin d’une doc API claire et lisible, pdoc fait ça comme un chef, sans que vous ayez besoin d’un doctorat en outil de documentation.

Bref, si vous en avez marre de passer plus de temps sur votre documentation que sur votre code, pdoc mérite le détour car documenter son code devrait être aussi simple que de le coder, non ?

Pour tester pdoc, direction pdoc.dev ou directement le repo GitHub .

  •  

Axelrod-Python/Axelrod: A research tool for the Iterated Prisoner's Dilemma

Une bibliothèque Python avec les principes et objectifs suivants :

  • Permettre la reproduction aussi simple que possible des recherches précédentes sur le dilemme du prisonnier itératif.
  • Créer l'outil de facto pour les futures recherches sur le dilemme du prisonnier itératif.
  • Fournir un moyen aussi simple que possible pour que tout le monde puisse définir et contribuer à de nouvelles stratégies originales pour le dilemme du prisonnier itératif.
    -Mettre l'accent sur la lisibilité ainsi que sur une communauté ouverte et accueillante qui s'adapte aux développeurs et aux chercheurs de différents niveaux de compétence.

Permalien
  •