Forum Programmation.python [Résolu] Itertools générer les combinaisons une par une

Posté par  . Licence CC By‑SA.
Étiquettes :
2
26
déc.
2022

Bonjour le monde !
J'ai un petit problème très pythonesque à vous soumettre aujourd'hui.
J'ai codé un petit script qui me génère toutes les situations « gagnantes » au jeu de Marienbad.
Il génère des combinaisons de tas de jetons, et teste si elles sont gagnantes, et les montre à l'écran si oui.
Pour la génération des combinaisons, j'utilise itertools avec la fonction combinations_with_replacement().
Seulement, quand on commence à passer à des générations avec une quinzaine de tas (…)

Journal scratch_manager: gestionnaire de mise en cache de jeux de données

Posté par  . Licence CC By‑SA.
21
16
déc.
2022

J'ai eu l'occasion de développer un petit logiciel open-source pour mon travail, donc j'en profite pour partager ici.

Motivation

Sur les grappes de calculs (clusters) dédiés à l'intelligence artificielle, il y a un problème assez récurrent lié au stockage et à l'accès aux données.
Dans ces installations, on trouve généralement d'un côté une baie de stockage avec des jeux de données composés de millions de petits fichiers, et de l'autre côté les nœuds de calcul qui lisent ces fichiers.
La (…)

Conférence & Atelier PyConFr - du 16 au 19 février 2023 à Bordeaux

Posté par  . Édité par Ysabeau 🧶, Xavier Teyssier et palm123. Modéré par Ysabeau 🧶. Licence CC By‑SA.
12
24
nov.
2022
Python

Quatre journées consacrées au langage Python, la PyConFr revient après deux ans d’absence pour proposer des Sprints, où l’on se retrouve à l’Université de Bordeaux pour coder ensemble le jeudi et vendredi, et des conférences le week-end afin de découvrir les expériences de chacun avec le langage Python.

L’accès est gratuit, ouvert à toutes et tous, cependant l’inscription préalable est nécessaire.

PyConFr 2023 du 16 au 19 février à Bordeaux

Forum Programmation.python iterator et barre de progression

Posté par  . Licence CC By‑SA.
Étiquettes :
5
21
nov.
2022

Salut !

Petite question rapide aux experts du langage, pour essayer de faire du joli code en Python.

J'ai cette ligne dans mon code

self.samples = [next(self.spect) for _ in range(sample_rate * 30)]

qui peut prendre plusieurs minutes pour fournir un résultat. J'aimerais afficher une petite barre de progression dans la console pour indiquer que le script est pas planté.

La question est de savoir si c'est possible en (…)

Journal cTypes + Rust = approfondir une relation d'amour et d'eau (fraîche)

Posté par  . Licence CC By‑SA.
18
6
nov.
2022

nb : dans cet article, je n'évoque que l'interpréteur officiel, CPython (3.4+) et l'usage de modules standard à l'interpréteur (donc pas d'exemples de cffi, quel qu’en soient les qualités par ailleurs !).

Introduction

Ce week-end, j'ai fait une énième recherche sur une bricole pour la communication Python et Rust via cTypes. Sur ces "détails" qu'on oublie aussi vite qu'on se casse les dents dessus lorsqu'on ne pratique pas.

Comme ma mémoire est encore plus limitée que le nombre d'onglets (…)

Journal Python 3.11 est disponible

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
33
25
oct.
2022

Ce journal est une traduction de https://discuss.python.org/t/python-3-11-0-final-is-now-available/20291

Nouveautés

Changements généraux

  • PEP 657 - Introduction de meilleures sources d'erreurs

Exemple :

Traceback (most recent call last):
  File "test.py", line 2, in <module>
    x['a']['b']['c']['d'] = 1
    ~~~~~~~~~~~^^^^^
TypeError: 'NoneType' object is not subscriptable
  • PEP 654 - Groupes d'exceptions et except*
  • PEP 680 - tomllib rejoint la librairie standard
  • GH-90908 - Introduction des groupes de tâches dans asyncio
  • GH-34827 - Groupes atomiques ((?>...)) and quantifieur possessifs (*+, ++, ?+, {m,n}+) sont maintenant supportés (…)

Forum Programmation.autre Besoin de conseils architecturaux

Posté par  . Licence CC By‑SA.
11
13
oct.
2022

Bien le salut, la compagnie mytilicultrice !

Je me lance dans un side-project, libre et gratuit, d'une envergure encore inédite pour moi.
Je vais vous esspliquer un peu ce que je compte faire, et comment. Si certains d'entre vous, en passant par là, avait envie de donner un avis constructif, voire des conseils, des idées, bienvenue à eux.

L'idée est de programmer un synthétiseur FM virtuel, dans la lignée de FM8 de Native Instruments, par exemple. Il en existe (…)

Des nouvelles de WeasyPrint, ou comment développer du libre à (presque) plein temps

Posté par  . Édité par Benoît Sibaud, Xavier Teyssier et Ysabeau 🧶. Modéré par Ysabeau 🧶. Licence CC By‑SA.
Étiquettes :
92
22
sept.
2022
Python

WeasyPrint est un générateur de documents qui transforme du HTML/CSS en PDF. C’est écrit en Python, c’est libre (bah oui, sinon on n’en parlerait pas ici), et nous en avions déjà discuté ici il y a quelques années dans un petit article.

Avec le temps (plus de 11 ans depuis le premier commit, que le temps passe vite ma p’tite dame…), le logiciel a gagné une sacrée ribambelle d’utilisateurs avec plus de 750 000 téléchargements par mois. Parmi tous ces gens qui utilisent WeasyPrint, on a forcément rencontré plein de gens avec plein d’idées pour générer plein de drôles de trucs ! Nous avons croisé entre autres des rapports de sécurité informatique 🖥️, des livres de jeu de rôle 🎮️, des tickets 🎫️, des documents scientifiques 🧮️, des factures de sites de vente en ligne 📄️, des compte-rendus biologiques ⚛️, des modes d’emploi de fours 🧑‍🍳️, des lettres officielles 💌️, des étiquettes électroniques 🏷️, des affiches promotionnelles en pharmacies ⚕️, des diplômes universitaires 🎓️…

Forts de ce petit succès, Lucie Anglade et moi (Guillaume Ayoub) avons créé depuis deux ans une structure qui s’appelle CourtBouillon (oui, parce que notre autre passion est la bonne nourriture) dédiée au développement de WeasyPrint et de ses dépendances. Nous avons donc pu passer beaucoup de temps à travailler sur le logiciel et apporter plein de nouveautés, tout en nous posant beaucoup de questions pour assurer un modèle économique viable. Voilà ce que l’on aimerait partager avec vous.

Journal python: ellipsis operator (...)

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
29
15
sept.
2022

J'ai découvert l'ellipsis operator de python (...). Dans le contexte où je l'utilise, c'est équivalent à pass, autrement dit ne rien faire. C'est utilisé principalement pour quand python attend qu'un bloc syntaxique soit rempli (corps d'une fonction, d'une boucle, …), mais qu'on a vraiment rien à y faire. Je trouve que ça permet de faire des interfaces plus élégantes.

from abc import ABC, abstractmethod

class CarElementVisitor(ABC):
    @abstractmethod
    def visitBody(self, element
(…)

Conférence Mercurial Paris du 21 au 23 septembre 2022 (évènement annulé)

Posté par  . Édité par Julien Jorge, Benoît Sibaud, Pierre Jarillon et Ysabeau 🧶. Modéré par Julien Jorge. Licence CC By‑SA.
Étiquettes :
11
8
sept.
2022
Gestion de versions

La conférence Mercurial Paris 2022, est une conférence internationale dédiée au gestionnaire de version Open Source Mercurial. Elle se tiendra fin septembre 2022 à Paris, Université Paris Sorbonne.

Mercurial est un gestionnaire de versions, libre et multi-plateforme, qui aide les équipes à collaborer sur des documents tout en conservant l’historique de l’ensemble des modifications. Équivalent fonctionnellement aux biens connus Git ou Svn, il s’en distingue sur de nombreux points techniques, ergonomiques et pratiques.

Doté d’une interface orientée utilisateur facile d’accès et simple à comprendre, il offre des capacités avancées de personnalisation du workflow et s’illustre aussitôt qu’il y a besoin de performances adaptées aux très gros dépôts. (Les équipes de Google et Facebook utilisent en interne des solutions basées sur Mercurial pour gérer l’ensemble de leur code source.).

Après une première édition en 2019, l’équipe d’Octobus aidée de Marla Da Silva, organisent cette nouvelle mouture qui se déroulera du 21 au 23 septembre dans les locaux de l’Irill (Initiative de Recherche et Innovation sur le Logiciel Libre), Université Sorbonne, Paris.

Forum Programmation.python Un démineur pour apprendre...

Posté par  (site web personnel) . Licence CC By‑SA.
6
5
sept.
2022

Bonjour,

Voici donc un démineur en Python, en mode textuel et graphique Tk.

En mode textuel, il faut prendre la main en interactif après avoir exécuté demineur.py

>>> explorer((5,5))
False
>>> print_cases()
__________________________1X1___
________111_______111_____1X1___
______113X2_______1X1_____111___
______1XXX2_______111___________
11____11211_____________________
X1______________________________
11___________________111________
_____________________1X1________
_____________111_____111________
_____________1X1________________
_____________111________________
________________________________
________________________________
111_____________111_____________
XX1_____________1X1_____________
XX1_____________1X1_____________
Sur les 10 bombes, il vous en reste 10 à trouver.

demineur-g.py permet d’avoir une interface graphique. Le nombre de bombes se trouve indiqué dans la barre de titre.

Je l’ai fait (…)