<?xml version="1.0" encoding="ISO-8859-1"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
		<title>Forum du club des développeurs et IT Pro - Général Python</title>
		<link>https://www.developpez.net/forums/</link>
		<description><![CDATA[Forum d'entraide sur les fondamentaux du langage Python, syntaxe, POO, bibliothèque standard, ...]]></description>
		<language>fr</language>
		<lastBuildDate>Fri, 09 Oct 2026 06:38:37 GMT</lastBuildDate>
		<generator>vBulletin</generator>
		<ttl>15</ttl>
		<image>
			<url>https://forum.developpez.be/images/misc/rss.png</url>
			<title>Forum du club des développeurs et IT Pro - Général Python</title>
			<link>https://www.developpez.net/forums/</link>
		</image>
		<item>
			<title>Adaptation du forum au développement Python par IA ?</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2185636&amp;goto=newpost</link>
			<pubDate>Mon, 14 Sep 2026 07:23:43 GMT</pubDate>
			<description>Bonjour, 
 
Puisque ce forum...</description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
<br />
Puisque ce forum est en train de couler à cause de l'IA, pourquoi ne pas l'adapter au développement par IA?<br />
<br />
En ce qui me concerne, je suis abonné à chatGPT (version &quot;+&quot; 23€/mois) pour plein de domaines qui n'ont rien à voir avec l'informatique. Par exemple la photo (retouche et génération), la médecine, la science, etc... Il m'arrive même de poser des questions bizarres comme &quot;un miroir inverse la droite et la gauche, mais pourquoi pas le haut et le bas?&quot; (Et la réponse est surprenante... :D). Je suis seulement maintenant en train de découvrir ce que peut faire l'IA pour le développement en Python: waouh... <br />
<br />
Mais il subsiste beaucoup de questions sur ça. Je commence à savoir ce que chatGPT fait dans ce domaine (Codex, plugins, GPT personnalisés) mais je ne connais pas les autres IA (claude, ...). Existe-t-il des IA plus spécialisés pour le développement Python ? Sont-ils tous capables de détecter les problèmes de fonctionnement et de sécurité sur un code donné? Existe-t-il des prompts recommandés pour les problèmes courants? Sont-il capables de traiter aussi les développements graphiques comme tkinter ou pyqt ? Pour un projet complexe donné, l'IA est-il capable de définir l'architecture du code, ou cela reste-t-il du domaine humain? Etc...<br />
<br />
Qu'en pensez-vous ?</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f1155/autres-langages/python/general-python/">Général Python</category>
			<dc:creator>tyrtamos</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2185636/autres-langages/python/general-python/adaptation-forum-developpement-python-ia/</guid>
		</item>
		<item>
			<title>La première version Release Candidate de Polars 2.0 est disponible</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2185477&amp;goto=newpost</link>
			<pubDate>Fri, 04 Sep 2026 09:48:13 GMT</pubDate>
			<description>*La préversion de Polars 2.0,...</description>
			<content:encoded><![CDATA[<div><b><font size="4">La préversion de Polars 2.0, une bibliothèque DataFrame ultra-rapide écrite en Rust qui permet de manipuler des données structurées, est disponible pour Python, R et NodeJS</font></b><br />
<br />
<b>La version Release Candidate de Polars 2.0, la bibliothèque DataFrame destinée à la manipulation de données structurées, est désormais disponible pour Python, R et Node.js. Cette mise à jour définit le moteur de streaming comme le moteur par défaut pour toutes les requêtes LazyFrame, ce qui promet un gain de performances d'environ cinq fois supérieur et des améliorations significatives en termes de consommation de mémoire pour la plupart des utilisateurs. Ce changement majeur de version s'accompagne également d'un comportement par défaut plus strict : les coercitions de types avec perte dans is_in, les concaténations horizontales de longueurs différentes et les conversions de types ambiguës génèrent désormais des erreurs au lieu de produire silencieusement des résultats erronés. Enfin, les API supprimées génèrent de nouvelles exceptions indiquant leurs remplacements.</b><br />
<br />
L'objectif de Polars est de fournir une bibliothèque DataFrame ultra-rapide qui exploite tous les cœurs de processeur disponibles sur une machine, tout en optimisant les requêtes pour réduire au minimum les opérations superflues et les allocations de mémoire. La bibliothèque est également capable de gérer des ensembles de données dont la taille dépasse la mémoire vive (RAM) disponible du système, et elle fournit une API cohérente et prévisible. De plus, Polars suit un schéma strict qui exige que les types de données soient connus avant l’exécution des requêtes.<br />
<br />
Polars est écrit en Rust, ce qui lui confère les performances du C/C++ et lui permet de contrôler entièrement les éléments critiques pour les performances d'un moteur de requêtes.<br />
<br />
Un exemple d'utilisation de la bibliothèque Polars avec Python est fourni ci-après :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #0000ff;">import</span> polars <span style="color: #0000ff;">as</span> pl
&nbsp;
q = <span class="br0">&#40;</span>
    pl.scan_csv<span class="br0">&#40;</span><span style="color: #FF0000;">&quot;docs/assets/data/iris.csv&quot;</span><span class="br0">&#41;</span>
    .filter<span class="br0">&#40;</span>pl.col<span class="br0">&#40;</span><span style="color: #FF0000;">&quot;sepal_length&quot;</span><span class="br0">&#41;</span> &gt; <span style="color: #cc66cc;">5</span><span class="br0">&#41;</span>
    .group_by<span class="br0">&#40;</span><span style="color: #FF0000;">&quot;species&quot;</span><span class="br0">&#41;</span>
    .agg<span class="br0">&#40;</span>pl.all<span class="br0">&#40;</span><span class="br0">&#41;</span>.sum<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>
<span class="br0">&#41;</span>
&nbsp;
df = q.collect<span class="br0">&#40;</span><span class="br0">&#41;</span></pre></td></tr></table></code><hr />
</div><br />
Le 2 septembre 2026, l'équipe de Polars a annoncé la première version Release Candidate de Polars 2.0, la version finale 2.0 devant être publiée dans les semaines à venir. L'équipe a précisé que Polars 2.0 n'est pas destiné à être une mise à jour riche en fonctionnalités. Cette version vise surtout à supprimer certaines contraintes de conception existantes et à améliorer les paramètres par défaut afin de proposer des réglages plus judicieux profitant à un public plus large.<br />
<br />
« Le principal changement par défaut réside dans le fait que toutes les requêtes <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">LazyFrame</span> s'exécuteront désormais sur le moteur de streaming. Les utilisateurs occasionnels de Polars peuvent donc s'attendre à des améliorations considérables en termes d'utilisation de la mémoire et de performances. Globalement, nous prévoyons que le moteur de streaming sera facilement cinq fois plus rapide », a indiqué Ritchie Vink, confondateur du projet Polars, dans un communiqué.<br />
<br />
<div style="text-align: center;">
<div class="video-container"><iframe class="restrain" title="YouTube video player" width="560" height="315" allowfullscreen src="//www.youtube.com/embed/VHqn7ufiilE?wmode=transparent&amp;fs=1" frameborder="0"></iframe></div>
</div><br />
<b><font size="3">Le moteur de streaming devient le moteur par défaut</font></b><br />
<br />
Il s'agit du changement le plus significatif de la version 2.0. L'appel de la méthode <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">collect</span> sur un <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">LazyFrame</span> s'appuiera désormais par défaut sur le moteur de streaming, ce qui se traduira par des améliorations considérables en termes de mémoire et de performances pour la plupart des requêtes des utilisateurs. La raison pour laquelle cela a nécessité un changement de version majeur est que le moteur de streaming ne garantit pas par défaut l'ordre des lignes pour certaines opérations comme <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">join</span>, <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">group_by</span>, <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">unpivot</span>, etc.. Si un utilisateur a besoin d’un ordre observable dans ces opérations, il peut activer cette fonctionnalité en définissant <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">maintain_order=<span style="color: #339933;">True</span></span>.<br />
<br />
Les utilisateurs qui souhaitent continuer à utiliser l'ancien moteur &quot;en mémoire&quot; par défaut peuvent le faire en configurant l'affinité du moteur : <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">pl.Config.set_engine_affinity<span class="br0">&#40;</span><span style="color: #FF0000;">&quot;in-memory&quot;</span><span class="br0">&#41;</span></span> pour un réglage global du processus et <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">.collect<span class="br0">&#40;</span>engine=<span style="color: #FF0000;">&quot;in-memory&quot;</span><span class="br0">&#41;</span></span> pour un réglage par requête.<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br /></div></td><td valign="top"><pre style="margin: 0">lf = pl.LazyFrame<span class="br0">&#40;</span><span class="br0">&#123;</span><span style="color: #FF0000;">&quot;k&quot;</span>: <span class="br0">&#91;</span><span style="color: #cc66cc;">2</span>, <span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">0</span><span class="br0">&#93;</span>, <span style="color: #FF0000;">&quot;v&quot;</span>: <span class="br0">&#91;</span><span style="color: #FF0000;">&quot;a&quot;</span>, <span style="color: #FF0000;">&quot;b&quot;</span>, <span style="color: #FF0000;">&quot;c&quot;</span><span class="br0">&#93;</span><span class="br0">&#125;</span><span class="br0">&#41;</span>
other = pl.LazyFrame<span class="br0">&#40;</span><span class="br0">&#123;</span><span style="color: #FF0000;">&quot;k&quot;</span>: <span class="br0">&#91;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">2</span><span class="br0">&#93;</span>, <span style="color: #FF0000;">&quot;r&quot;</span>: <span class="br0">&#91;</span><span style="color: #FF0000;">&quot;x&quot;</span>, <span style="color: #FF0000;">&quot;y&quot;</span>, <span style="color: #FF0000;">&quot;z&quot;</span><span class="br0">&#93;</span><span class="br0">&#125;</span><span class="br0">&#41;</span>
&nbsp;
<span style="color: #808080;"># 2.0: engine=&quot;auto&quot; now resolves to the streaming engine.</span>
<span style="color: #808080;"># Row order is no longer guaranteed for joins, group_by, unpivot, ...</span>
<span class="br0">&#40;</span>
    lf
    .join<span class="br0">&#40;</span>other, on=<span style="color: #FF0000;">&quot;k&quot;</span>, how=<span style="color: #FF0000;">&quot;left&quot;</span><span class="br0">&#41;</span>
    .collect<span class="br0">&#40;</span><span class="br0">&#41;</span>
<span class="br0">&#41;</span>
<span style="color: #808080;"># &#9484;&#9472;&#9472;&#9472;&#9472;&#9472;&#9516;&#9472;&#9472;&#9472;&#9472;&#9472;&#9516;&#9472;&#9472;&#9472;&#9472;&#9472;&#9488;</span>
<span style="color: #808080;"># &#9474; k   &#9478; v   &#9478; r   &#9474;   &lt;- order may not match `lf`'s original row order</span>
<span style="color: #808080;"># &#9492;&#9472;&#9472;&#9472;&#9472;&#9472;&#9524;&#9472;&#9472;&#9472;&#9472;&#9472;&#9524;&#9472;&#9472;&#9472;&#9472;&#9472;&#9496;</span>
&nbsp;
<span style="color: #808080;"># Opt in to observable order for this query:</span>
<span class="br0">&#40;</span>
    lf
    .join<span class="br0">&#40;</span>other, on=<span style="color: #FF0000;">&quot;k&quot;</span>, how=<span style="color: #FF0000;">&quot;left&quot;</span>, maintain_order=<span style="color: #FF0000;">&quot;left&quot;</span><span class="br0">&#41;</span>
    .collect<span class="br0">&#40;</span><span class="br0">&#41;</span>
<span class="br0">&#41;</span>
&nbsp;
<span style="color: #808080;"># Or keep the old in-memory engine as the default, process-wide:</span>
pl.Config.set_engine_affinity<span class="br0">&#40;</span><span style="color: #FF0000;">&quot;in-memory&quot;</span><span class="br0">&#41;</span>
&nbsp;
<span style="color: #808080;"># ...or per query:</span>
<span class="br0">&#40;</span>
    lf
    .join<span class="br0">&#40;</span>other, on=<span style="color: #FF0000;">&quot;k&quot;</span>, how=<span style="color: #FF0000;">&quot;left&quot;</span><span class="br0">&#41;</span>
    .collect<span class="br0">&#40;</span>engine=<span style="color: #FF0000;">&quot;in-memory&quot;</span><span class="br0">&#41;</span>
<span class="br0">&#41;</span></pre></td></tr></table></code><hr />
</div><br />
<b><font size="3">Polars plus rigoureux</font></b><br />
<br />
Polars vise à être plus rigoureux et renforce son approche de fail-fast. Idéalement, les erreurs devraient être signalées dès le début, et non pas au bout de 20 minutes dans un pipeline. Le comportement implicite en cas de non-correspondance des données devrait être activable, et non pas par défaut, car ces incohérences peuvent masquer des bogues. Cette rigueur est devenue encore plus précieuse avec l’essor du développement piloté par l’IA. Les agents IA peuvent valider la structure d’une requête dès le début en appelant la fonction <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">collect_schema<span class="br0">&#40;</span><span class="br0">&#41;</span></span>, qui résout les types et détecte les incohérences au niveau du schéma sans matérialiser aucune donnée. Cela garantit un retour d’information rapide aux agents, ce qui leur permet d’itérer plus rapidement. Toutes les erreurs ne peuvent pas être détectées lors de la compilation du plan de requête, certaines dépendant des données. Dans ces cas-là, Polars adopte par défaut un comportement plus strict afin de s’assurer que les incohérences soient détectées, plutôt que de produire silencieusement des résultats différents.<br />
<br />
Voici quelques exemples illustrant les domaines dans lesquels Polars est devenu plus strict :<br />
<br />
<b><font size="2">Coercition de type sans perte dans <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">is_in</span></font></b><br />
<br />
Si vous exécutez une expression <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">is_in</span> sur des types de données différents, Polars avait pour habitude de convertir les deux types en leur supertype commun, même si cette conversion entraînait une perte d'informations. Vous trouverez ci-dessous un exemple avec des identifiants d'utilisateurs qui peut poser problème en raison d'incompatibilités silencieuses entre les types de données.<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #808080;"># Checking if a user ID matches a list of &quot;flagged&quot; account IDs</span>
<span style="color: #808080;"># (flagged_ids loaded from a JSON export, where large IDs became floats)</span>
flagged_ids = pl.Series<span class="br0">&#40;</span><span class="br0">&#91;</span><span style="color: #cc66cc;">9007199254740992.0</span><span class="br0">&#93;</span><span class="br0">&#41;</span>
user_id = pl.Series<span class="br0">&#40;</span><span class="br0">&#91;</span><span style="color: #cc66cc;">9007199254740993</span><span class="br0">&#93;</span><span class="br0">&#41;</span>  <span style="color: #808080;"># Int64 -&gt; a different ID, off by 1</span>
user_id.is_in<span class="br0">&#40;</span>flagged_ids<span class="br0">&#41;</span></pre></td></tr></table></code><hr />
</div><br />
Avant la version 2.0, <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">user_id</span> était converti en <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">Float64</span> pour correspondre à <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">flagged_ids</span>. Mais 9007199254740993 est supérieur à 2^53 (9007199254740992), le plus grand entier que le type Float64 puisse représenter exactement ; il est donc arrondi silencieusement à la baisse vers 9007199254740992.0, ce qui génère un faux positif.<br />
<br />
Dans la version 2.0, cela génère l'erreur suivante : <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">InvalidOperationError: <span style="color: #FF0000;">'is_in'</span> cannot check <span style="color: #0000ff;">for</span> Int64 values <span style="color: #0000ff;">in</span> List<span class="br0">&#40;</span>Float64<span class="br0">&#41;</span> data.</span>, les utilisateurs doivent effectuer un transtypage explicite pour gérer la conversion de type avec perte.<br />
<br />
<b><font size="2">Concaténation stricte</font></b><br />
<br />
La concaténation horizontale vérifie désormais les longueurs au lieu de remplir silencieusement avec des <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">null</span>.<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #808080;"># Joining per-day transaction counts with per-day fraud-flag counts,</span>
transactions = pl.DataFrame<span class="br0">&#40;</span><span class="br0">&#123;</span><span style="color: #FF0000;">&quot;day&quot;</span>: <span class="br0">&#91;</span><span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">2</span>, <span style="color: #cc66cc;">3</span>, <span style="color: #cc66cc;">4</span>, <span style="color: #cc66cc;">5</span><span class="br0">&#93;</span>, <span style="color: #FF0000;">&quot;count&quot;</span>: <span class="br0">&#91;</span><span style="color: #cc66cc;">120</span>, <span style="color: #cc66cc;">98</span>, <span style="color: #cc66cc;">143</span>, <span style="color: #cc66cc;">87</span>, <span style="color: #cc66cc;">156</span><span class="br0">&#93;</span><span class="br0">&#125;</span><span class="br0">&#41;</span>
&nbsp;
<span style="color: #808080;"># Upstream job for day 5 failed silently</span>
fraud_flags = pl.DataFrame<span class="br0">&#40;</span><span class="br0">&#123;</span><span style="color: #FF0000;">&quot;flagged&quot;</span>: <span class="br0">&#91;</span><span style="color: #cc66cc;">2</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">5</span>, <span style="color: #cc66cc;">1</span><span class="br0">&#93;</span><span class="br0">&#125;</span><span class="br0">&#41;</span>  <span style="color: #808080;"># only 4 rows</span>
&nbsp;
pl.concat<span class="br0">&#40;</span><span class="br0">&#91;</span>transactions, fraud_flags<span class="br0">&#93;</span>, how=<span style="color: #FF0000;">&quot;horizontal&quot;</span><span class="br0">&#41;</span></pre></td></tr></table></code><hr />
</div><br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br /></div></td><td valign="top"><pre style="margin: 0">shape: <span class="br0">&#40;</span><span style="color: #cc66cc;">5</span>, <span style="color: #cc66cc;">2</span><span class="br0">&#41;</span>
&#9484;&#9472;&#9472;&#9472;&#9472;&#9472;&#9516;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9516;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9488;
&#9474; day &#9478; count &#9478; flagged &#9474;
&#9474; <span style="color: #cc66cc;">1</span>   &#9478; <span style="color: #cc66cc;">120</span>   &#9478; <span style="color: #cc66cc;">2</span>       &#9474;
&#9474; <span style="color: #cc66cc;">2</span>   &#9478; <span style="color: #cc66cc;">98</span>    &#9478; <span style="color: #cc66cc;">0</span>       &#9474;
&#9474; <span style="color: #cc66cc;">3</span>   &#9478; <span style="color: #cc66cc;">143</span>   &#9478; <span style="color: #cc66cc;">5</span>       &#9474;
&#9474; <span style="color: #cc66cc;">4</span>   &#9478; <span style="color: #cc66cc;">87</span>    &#9478; <span style="color: #cc66cc;">1</span>       &#9474;
&#9474; <span style="color: #cc66cc;">5</span>   &#9478; <span style="color: #cc66cc;">156</span>   &#9478; null    &#9474;  &lt;- day <span style="color: #cc66cc;">5</span> silently has no flag count
&#9492;&#9472;&#9472;&#9472;&#9472;&#9472;&#9524;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9524;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9472;&#9496;</pre></td></tr></table></code><hr />
</div><br />
Dans la version 2.0, cela provoquera l'erreur <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">ShapeError</span> suivante :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code">ShapeError: cannot concat dataframes <span style="color: #0000ff;">with</span> different heights <span style="color: #0000ff;">in</span> <span style="color: #FF0000;">'strict'</span> mode</code><hr />
</div><br />
Si le remplissage est intentionnel, vous devez l'indiquer explicitement en utilisant l'attribut <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">how=<span style="color: #FF0000;">&quot;horizontal_extend&quot;</span></span>. Cela permet de signaler clairement cette intention dans le code.<br />
<br />
<b><font size="2">Suppression des conversions de type ambiguës au profit de méthodes/constructeurs dédiés</font></b><br />
<br />
Il convient également de mentionner la suppression de nombreux <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">cast</span> qui étaient ambigus ou qui devaient être appliqués via leur expression d'analyse dédiée, ce qui permet désormais d'analyser les données d'une manière univoque.<br />
<br />
Le <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">cast</span> entre entier et Enum/Categorical a été supprimé : pour convertir un entier en Categorical, il faut utilisez <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">.cat.to<span class="br0">&#40;</span>dtype<span class="br0">&#41;</span></span>, et pour passer d'un Categorical à un entier utilisez <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">.cat.physical<span class="br0">&#40;</span><span class="br0">&#41;</span></span>.<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br /></div></td><td valign="top"><pre style="margin: 0">pl.Series<span class="br0">&#40;</span><span class="br0">&#91;</span><span style="color: #339933;">None</span>, <span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">2</span><span class="br0">&#93;</span>, dtype=pl.UInt32<span class="br0">&#41;</span>.cast<span class="br0">&#40;</span>pl.Enum<span class="br0">&#40;</span><span class="br0">&#91;</span><span style="color: #FF0000;">&quot;a&quot;</span>, <span style="color: #FF0000;">&quot;b&quot;</span>, <span style="color: #FF0000;">&quot;c&quot;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>
<span style="color: #808080;"># ComputeError: casting from u32 to enum is not supported.</span></pre></td></tr></table></code><hr />
</div><br />
Le <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">cast</span> de chaînes vers des types de données temporels n'est plus pris en charge : utilisez plutôt <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">.str.to_date<span class="br0">&#40;</span><span class="br0">&#41;</span></span> / <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">.str.to_datetime<span class="br0">&#40;</span><span class="br0">&#41;</span></span>. Ces méthodes vous permettent d'appliquer un format de conversion, ce qui vous offre davantage de contrôle sur la manière dont les données sont converties.<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code">Conversion de cha&icirc;nes de caract&egrave;res en types de donn&eacute;es temporels : utilisez plut&ocirc;t : .str.to_date<span class="br0">&#40;</span><span class="br0">&#41;</span> / .str.to_datetime<span class="br0">&#40;</span><span class="br0">&#41;</span>. Ces m&eacute;thodes vous permettent d<span style="color: #FF0000;">'appliquer un format de parsing, ce qui vous offre davantage de contr&ocirc;le sur la mani&egrave;re dont les donn&eacute;es sont converties.</span></code><hr />
</div><br />
Ce ne sont là que quelques exemples, mais l'équipe du projet a apporté bien d'autres améliorations en matière de rigueur.<br />
<br />
<b><font size="3">Génération de messages d'erreur explicites</font></b><br />
<br />
L'équipe de Polars a déployé beaucoup d'efforts pour permettre à un utilisateur ou à son agent de poursuivre son travail lorsqu'il utilise d'anciens paramètres qui ne sont plus pris en charge. Polars a ajouté deux nouvelles exceptions typées à cet effet : <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">polars.exceptions.AttributeRemovedError</span> et <span style="font-family: monospace; padding: 2px; background: #ddd; display: inline-block">polars.exceptions.ArgumentRemovedError</span>, qui gèrent respectivement les propriétés et méthodes supprimés, ainsi que les arguments supprimés.<br />
<br />
Les messages d'erreur devraient désormais vous rediriger vers la nouvelle API de remplacement. Vous trouverez ci-dessous deux exemples.<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br /></div></td><td valign="top"><pre style="margin: 0">&gt;&gt;&gt; lf.melt<span class="br0">&#40;</span>id_vars=<span style="color: #FF0000;">&quot;a&quot;</span>, value_vars=<span style="color: #FF0000;">&quot;b&quot;</span><span class="br0">&#41;</span>
polars.exceptions.AttributeRemovedError: `melt` was removed <span style="color: #0000ff;">in</span> version <span style="color: #cc66cc;">2.0</span>;
use `LazyFrame.unpivot` instead, <span style="color: #0000ff;">with</span> `index` instead of `id_vars`
<span style="color: #0000ff;">and</span> `on` instead of `value_vars`</pre></td></tr></table></code><hr />
</div><br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br /></div></td><td valign="top"><pre style="margin: 0">&gt;&gt;&gt; df.join<span class="br0">&#40;</span>df, on=<span style="color: #FF0000;">&quot;a&quot;</span>, join_nulls=<span style="color: #339933;">True</span><span class="br0">&#41;</span>
polars.exceptions.ArgumentRemovedError: the argument <span style="color: #FF0000;">'join_nulls'</span> <span style="color: #0000ff;">for</span>
<span style="color: #FF0000;">'DataFrame.join'</span> was deprecated <span style="color: #0000ff;">in</span> version <span style="color: #cc66cc;">1.24</span> <span style="color: #0000ff;">and</span> has been removed
<span style="color: #0000ff;">in</span> <span style="color: #cc66cc;">2.0</span>.<span style="color: #cc66cc;">0.</span> It was renamed to <span style="color: #FF0000;">'nulls_equal'</span> <span style="color: #0000ff;">in</span> version <span style="color: #cc66cc;">2.0</span>.</pre></td></tr></table></code><hr />
</div><br />
« Polars 2.x sera bien meilleur que la version 1.x. De nombreux projets sont en cours dont nous n’avons pas encore suffisamment parlé publiquement : une prise en charge adéquate de l’out-of-core pour le moteur de streaming, une nouvelle conception des plugins d’E/S, ce qui, selon nous, sera le lecteur S3 le plus rapide du marché, des améliorations majeures de la couverture SQL, un planificateur basé sur les coûts, le réordonnancement des jointures et la suppression de mmap, ce qui rendra nos pipelines entièrement asynchrones de bout en bout », a conclu Ritchie Vink.<br />
<br />
<b>Source :</b> <a rel="nofollow" href="https://pola.rs/posts/announcing-polars-2/" target="_blank">Annonce de la RC de Polars 2.0</a><br />
<br />
<b>Et vous ?</b><br />
<br />
:fleche: Quel est votre avis sur le sujet ?<br />
:fleche: Que pensez-vous des nouveautés proposées par cette version de Polars ? Les trouvez-vous utiles et intéressantes ?<br />
<br />
<b>Voir aussi :</b><br />
<br />
:fleche: <a href="https://python.developpez.com/actu/353141/Polars-la-bibliotheque-de-frameworks-de-donnees-pour-Python-evolue-de-la-version-0-19-0-a-0-20-elle-utilise-Rust-pour-le-moteur-de-requete-et-apporte-le-type-de-donnees-Enum/" target="_blank">Polars, la bibliothèque de frameworks de données pour Python, évolue de la version 0.19.0 à 0.20, elle utilise Rust pour le moteur de requête et apporte le type de données Enum</a><br />
<br />
:fleche: <a href="https://jetbrains.developpez.com/actu/366457/Etat-de-la-Science-des-Donnees-2024-6-tendances-cles-selon-la-derniere-enquete-de-JetBrains-et-la-Python-Software-Foundation/" target="_blank">État de la Science des Données 2024 : 6 tendances clés selon la dernière enquête de JetBrains et la Python Software Foundation</a></div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f1155/autres-langages/python/general-python/">Général Python</category>
			<dc:creator>Anthony</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2185477/autres-langages/python/general-python/premiere-version-release-candidate-polars-2-0-disponible/</guid>
		</item>
		<item>
			<title><![CDATA[[Python 3.X] Différence entre pandas.plot() et plt.subplots()]]></title>
			<link>https://www.developpez.net/forums/showthread.php?t=2185451&amp;goto=newpost</link>
			<pubDate>Thu, 03 Sep 2026 08:40:34 GMT</pubDate>
			<description>Bonjour, 
 
Je suis débutant...</description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
<br />
Je suis débutant et autodidacte en programmation Python.<br />
<br />
Je rencontre un problème d'affichage entre les deux méthodes suivantes : pandas.plot() et plt.subplots().<br />
<br />
<b>1 ) Pourquoi pandas.plot() n'affiche pas toutes les valeurs du DataFrame ?</b><br />
<br />
<b>2 ) Existe-t-il une autre méthode pour modifier le label de l'axe X ?</b><br />
<br />
<img src="https://www.developpez.net/forums/attachments/p678612d1788424370/autres-langages/python/general-python/difference-entre-pandas-plot-plt-subplots/bug.jpeg/" border="0" alt="Nom : Bug.jpeg
Affichages : 217
Taille : 65,4 Ko"  style="float: CONFIG" /><br />
<br />
Voici les sources : <br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #0000ff;">import</span> matplotlib.pyplot <span style="color: #0000ff;">as</span> plt
<span style="color: #0000ff;">import</span> pandas <span style="color: #0000ff;">as</span> pd
&nbsp;
<span style="color: #FF0000;">&quot;&quot;&quot;</span>
<span style="color: #FF0000;">tensions=pd.read_excel<span class="br0">&#40;</span>'./Dataset/Tensions.xls',index_col='date',parse_dates=True<span class="br0">&#41;</span></span>
<span style="color: #FF0000;">tensions.drop<span class="br0">&#40;</span>'PLS',axis='columns', inplace=True<span class="br0">&#41;</span></span>
<span style="color: #FF0000;">tensions.index=tensions.index.strftime<span class="br0">&#40;</span>&quot;%Y/%m/%d %H&quot;<span class="br0">&#41;</span></span>
<span style="color: #FF0000;">&quot;&quot;&quot;</span>
&nbsp;
tensions=pd.DataFrame<span class="br0">&#40;</span><span class="br0">&#123;</span><span style="color: #FF0000;">'SYS'</span>: <span class="br0">&#123;</span><span style="color: #FF0000;">'2026/08/29 10'</span>: <span style="color: #cc66cc;">16</span>,
  <span style="color: #FF0000;">'2026/08/29 17'</span>: <span style="color: #cc66cc;">16</span>,
  <span style="color: #FF0000;">'2026/08/30 10'</span>: <span style="color: #cc66cc;">15</span>,
  <span style="color: #FF0000;">'2026/08/30 17'</span>: <span style="color: #cc66cc;">16</span>,
  <span style="color: #FF0000;">'2026/08/31 10'</span>: <span style="color: #cc66cc;">17</span>,
  <span style="color: #FF0000;">'2026/09/01 10'</span>: <span style="color: #cc66cc;">17</span>,
  <span style="color: #FF0000;">'2026/09/01 18'</span>: <span style="color: #cc66cc;">17</span>,
  <span style="color: #FF0000;">'2026/09/02 10'</span>: <span style="color: #cc66cc;">15</span>,
  <span style="color: #FF0000;">'2026/09/02 17'</span>: <span style="color: #cc66cc;">20</span>,
  <span style="color: #FF0000;">'2026/09/03 10'</span>: <span style="color: #cc66cc;">14</span><span class="br0">&#125;</span>,
 <span style="color: #FF0000;">'DIA'</span>: <span class="br0">&#123;</span><span style="color: #FF0000;">'2026/08/29 10'</span>: <span style="color: #cc66cc;">8</span>,
  <span style="color: #FF0000;">'2026/08/29 17'</span>: <span style="color: #cc66cc;">8</span>,
  <span style="color: #FF0000;">'2026/08/30 10'</span>: <span style="color: #cc66cc;">9</span>,
  <span style="color: #FF0000;">'2026/08/30 17'</span>: <span style="color: #cc66cc;">8</span>,
  <span style="color: #FF0000;">'2026/08/31 10'</span>: <span style="color: #cc66cc;">9</span>,
  <span style="color: #FF0000;">'2026/09/01 10'</span>: <span style="color: #cc66cc;">14</span>,
  <span style="color: #FF0000;">'2026/09/01 18'</span>: <span style="color: #cc66cc;">9</span>,
  <span style="color: #FF0000;">'2026/09/02 10'</span>: <span style="color: #cc66cc;">7</span>,
  <span style="color: #FF0000;">'2026/09/02 17'</span>: <span style="color: #cc66cc;">9</span>,
  <span style="color: #FF0000;">'2026/09/03 10'</span>: <span style="color: #cc66cc;">7</span><span class="br0">&#125;</span><span class="br0">&#125;</span><span class="br0">&#41;</span>
&nbsp;
&nbsp;
tensions.plot<span class="br0">&#40;</span>fontsize=<span style="color: #cc66cc;">7</span>,rot=<span style="color: #cc66cc;">90</span>,grid=<span style="color: #FF0000;">'True'</span>,title=<span style="color: #FF0000;">'Figure 1'</span><span class="br0">&#41;</span>
&nbsp;
fig, ax1 = plt.subplots<span class="br0">&#40;</span><span class="br0">&#41;</span>
ax1.plot<span class="br0">&#40;</span>tensions.index,tensions<span class="br0">&#91;</span><span style="color: #FF0000;">'SYS'</span><span class="br0">&#93;</span>,label=<span style="color: #FF0000;">'SYS'</span><span class="br0">&#41;</span>
ax1.plot<span class="br0">&#40;</span>tensions.index,tensions<span class="br0">&#91;</span><span style="color: #FF0000;">'DIA'</span><span class="br0">&#93;</span>,label=<span style="color: #FF0000;">'DIA'</span><span class="br0">&#41;</span>
&nbsp;
plt.title<span class="br0">&#40;</span><span style="color: #FF0000;">'Figure 2'</span><span class="br0">&#41;</span>
plt.legend<span class="br0">&#40;</span>fontsize=<span style="color: #cc66cc;">6</span><span class="br0">&#41;</span>
plt.xticks<span class="br0">&#40;</span>fontsize=<span style="color: #cc66cc;">7</span>,rotation=<span style="color: #cc66cc;">90</span><span class="br0">&#41;</span>
plt.grid<span class="br0">&#40;</span><span style="color: #339933;">True</span><span class="br0">&#41;</span></pre></td></tr></table></code><hr />
</div>Merci pour votre aide ou remarques. :lol:<br />
<br />
Cordialement Marc.<br />
<br />
Python 		3.12.3     matplotlib	3.10.7   pandas		2.3.3</div>


	<div style="padding:10px">

	

	
		<fieldset class="fieldset">
			<legend>Images attachées</legend>
				<div style="padding:10px">
				<img class="attach" src="https://www.developpez.net/forums/attachments/p678612d1788424370/autres-langages/python/general-python/difference-entre-pandas-plot-plt-subplots/bug.jpeg/" alt="" />&nbsp;
			</div>
		</fieldset>
	

	

	

	</div>
]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f1155/autres-langages/python/general-python/">Général Python</category>
			<dc:creator>marc003</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2185451/autres-langages/python/general-python/difference-entre-pandas-plot-plt-subplots/</guid>
		</item>
		<item>
			<title>décorer des classes, et un peu plus.</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2184794&amp;goto=newpost</link>
			<pubDate>Wed, 22 Jul 2026 20:07:49 GMT</pubDate>
			<description><![CDATA[Bonjour, 
 
j'ai récemment...]]></description>
			<content:encoded><![CDATA[<div>Bonjour,<br />
<br />
j'ai récemment apris qu'il est  possible de décorer des classes (merci fred1599) et j'ai l'intuition que ça peu m'aider.<br />
Voici, jusqu'ici j'avais en schématisant:<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #0000ff;">class</span> A:
    <span style="color: #0000ff;">def</span> draw<span class="br0">&#40;</span><span class="br0">&#41;</span>:
        ...
    <span style="color: #0000ff;">def</span> drawWrapper<span class="br0">&#40;</span><span class="br0">&#41;</span>:
        ...
&nbsp;
<span style="color: #0000ff;">class</span> B<span class="br0">&#40;</span>A<span class="br0">&#41;</span>:
<span style="color: #339933;">&nbsp; &nbsp; @A.drawWrapper</span>
    <span style="color: #0000ff;">def</span> draw<span class="br0">&#40;</span><span class="br0">&#41;</span>:
        ...</pre></td></tr></table></code><hr />
</div>y aurait pas moyen de faire un truc genre:<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #0000ff;">class</span> A:
    <span style="color: #0000ff;">def</span> draw<span class="br0">&#40;</span><span class="br0">&#41;</span>:
        ...
    <span style="color: #0000ff;">def</span> drawWrapper<span class="br0">&#40;</span><span class="br0">&#41;</span>:
        ...
&nbsp;
<span style="color: #339933;">@undecorateurpourA</span>
<span style="color: #0000ff;">class</span> B<span class="br0">&#40;</span><span class="br0">&#41;</span>:
&nbsp;
    <span style="color: #0000ff;">def</span> draw<span class="br0">&#40;</span><span class="br0">&#41;</span>:
        ...</pre></td></tr></table></code><hr />
</div>qui ferait magiquement hériter de A et décorer B.draw ?<br />
<br />
Merci.</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f1155/autres-langages/python/general-python/">Général Python</category>
			<dc:creator>josmiley</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2184794/autres-langages/python/general-python/decorer-classes-plus/</guid>
		</item>
		<item>
			<title><![CDATA[Une fonction crée_vaisseau qui ne trouve pas un attribut d'une classe.]]></title>
			<link>https://www.developpez.net/forums/showthread.php?t=2184722&amp;goto=newpost</link>
			<pubDate>Sat, 18 Jul 2026 00:53:33 GMT</pubDate>
			<description>Salut 
 
 
Ma classe Humain...</description>
			<content:encoded><![CDATA[<div>Salut<br />
<br />
<br />
Ma classe Humain contient bien l'attribut <b>Camp</b> mais une fonction ne trouve pas cet attibut.<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #0000ff;">class</span> Humain<span class="br0">&#40;</span>C_player<span class="br0">&#41;</span> :
    <span style="color: #0000ff;">def</span> <span style="color: #0080ff;">__init__</span><span class="br0">&#40;</span>self<span class="br0">&#41;</span> :
        super<span class="br0">&#40;</span><span class="br0">&#41;</span>.<span style="color: #0080ff;">__init__</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
        <span style="color: #808080;"># ***************** Caract&eacute;ristiques ***************</span>
        self.Nom=<span style="color: #FF0000;">&quot;Humain&quot;</span>
        self.Camp=<span style="color: #cc66cc;">0</span></pre></td></tr></table></code><hr />
</div><b>La fonction qui ne sait pas trouver l'attribut Camp :</b><br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #0000ff;">def</span> Cree_vaisseau<span class="br0">&#40;</span>nom,arme<span class="br0">&#41;</span> :
&nbsp;
    <span style="color: #808080;"># Attribue la classe Vaisseau()</span>
    vaisseau = Vaisseau
&nbsp;
    vaisseau.Nom=nom
&nbsp;
    <span style="color: #808080;"># D&eacute;finit les armes voulues.</span>
    vaisseau.Armes=arme
&nbsp;
    <span style="color: #0000ff;">if</span> joueur.Camp==<span style="color: #cc66cc;">0</span> :
        <span style="color: #808080;"># Etc....</span></pre></td></tr></table></code><hr />
</div><b>Le message d'erreur :</b><br />
<br />
    if joueur.Camp==0 :<br />
AttributeError: type object 'Humain' has no attribute 'Camp'<br />
<br />
<br />
EDIT :<br />
<br />
Apparement, j'ai plus le message d'erreur après avoir ajouté des parenthèses ici : <b>vaisseau = Vaisseau()</b><br />
<br />
Qu'en dites-vous ?</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f1155/autres-langages/python/general-python/">Général Python</category>
			<dc:creator>nouby</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2184722/autres-langages/python/general-python/fonction-cree_vaisseau-ne-trouve-attribut-d-classe/</guid>
		</item>
		<item>
			<title>Que signifie cette erreur python ?</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2184696&amp;goto=newpost</link>
			<pubDate>Fri, 17 Jul 2026 01:53:28 GMT</pubDate>
			<description>Salut ! 
 
que signifie cette...</description>
			<content:encoded><![CDATA[<div>Salut !<br />
<br />
que signifie cette erreur SVP  ?<br />
<br />
<br />
<b>    def Cree_vaisseaux(type,arme=[Mitrailleuse,Lance_missile],quant) :<br />
                                                              ^^^^^<br />
SyntaxError: non-default argument follows default argument<br />
</b><br />
<br />
<br />
Et j'ai aussi dans la même classe Gestion, l'erreur suivante :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #0000ff;">class</span> Gestion<span class="br0">&#40;</span><span class="br0">&#41;</span> :
&nbsp;
    <span style="color: #0000ff;">def</span> <span style="color: #0080ff;">__init__</span><span class="br0">&#40;</span>self<span class="br0">&#41;</span> :
&nbsp;
        <span style="color: #808080;"># G&egrave;re des variables g&eacute;n&eacute;rales du jeu.</span>
        self.Action=<span style="color: #cc66cc;">1</span>
        self.Repet = <span style="color: #cc66cc;">0</span>
        self.Index = <span style="color: #cc66cc;">0</span>
&nbsp;
&nbsp;
    <span style="color: #0000ff;">def</span> Cree_players<span class="br0">&#40;</span>self<span class="br0">&#41;</span> :
          <span style="color: #808080;"># bla bla bla</span></pre></td></tr></table></code><hr />
</div><br />
Au lancement du programme :<br />
<br />
Gestion.Cree_players()  <b>&lt;---------     Gestion.Cree_players()</b><br />
<br />
<b>TypeError: Gestion.Cree_players() missing 1 required positional argument: 'self'</b><br />
<br />
Si je mets le self dans la parenthèse, python me dit que self est inconnu.<br />
Pourtant il me semblait bien avoir écrit la classe Gestion.<br />
<br />
Les deux erreurs sont liées à la structure de ma classe ?<br />
la méthode Cree_players() et la méthode Cree_vaisseaux() font partie de la classe Gestion.</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f1155/autres-langages/python/general-python/">Général Python</category>
			<dc:creator>nouby</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2184696/autres-langages/python/general-python/signifie-cette-erreur-python/</guid>
		</item>
		<item>
			<title>Comment dessiner un rectangle de longueur 100 px qui est censé représenter la valeur de 800 ?</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2184677&amp;goto=newpost</link>
			<pubDate>Thu, 16 Jul 2026 04:15:28 GMT</pubDate>
			<description>Salut ! 
 
un vrai casse-tête...</description>
			<content:encoded><![CDATA[<div>Salut !<br />
<br />
un vrai casse-tête pour moi !<br />
Tout est dans la question du post !</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f1155/autres-langages/python/general-python/">Général Python</category>
			<dc:creator>nouby</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2184677/autres-langages/python/general-python/dessiner-rectangle-longueur-100-px-cense-representer-800-a/</guid>
		</item>
		<item>
			<title><![CDATA[Pourquoi python ne reconnait pas l'attribut "Son1" dans cette classe Munition() ?]]></title>
			<link>https://www.developpez.net/forums/showthread.php?t=2184675&amp;goto=newpost</link>
			<pubDate>Wed, 15 Jul 2026 21:44:45 GMT</pubDate>
			<description><![CDATA[<div...]]></description>
			<content:encoded><![CDATA[<div><div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #0000ff;">class</span> Munition<span class="br0">&#40;</span><span class="br0">&#41;</span> :
&nbsp;
    <span style="color: #0000ff;">def</span> __Init__<span class="br0">&#40;</span>self<span class="br0">&#41;</span> :
&nbsp;
        self.Rect=py.Rect<span class="br0">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">10</span>,<span style="color: #cc66cc;">30</span><span class="br0">&#41;</span>
        self.Couleur=Blanc
        self.Son1=tir_001
&nbsp;
    <span style="color: #0000ff;">def</span> Getson<span class="br0">&#40;</span>self<span class="br0">&#41;</span> :
        son = self.Son1
        <span style="color: #0000ff;">return</span> son</pre></td></tr></table></code><hr />
</div>Salut !<br />
<br />
python ne veut pas reconnaitre la valeur tir_001 alors qu'elle existe dans mes variables :<br />
<br />
tir_001 = py.mixer.Sound('c:/Prog/assets/snd/tir_001.wav')<br />
<br />
et il n'y a pas ce problème avec d'autres classes.<br />
<br />
J'ai utilisé Getson() pour palier justement à ce problème mais apparement c'est pareil, pour lui ce son n'existe pas.<br />
Pourtant il existe dans le code et dans le dossier des sons et sans faute d'orthographe.<br />
Le problème reste le même si je change le nom du son par un autre existant.<br />
<br />
J'ai pas encore essayé, mais j'ai l'impression que si je lui demande la couleur, il fera le même problème, ne connaitra pas la couleur.<br />
<br />
<b>EDIT : J'ai testé pour la couleur !</b><br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br /></div></td><td valign="top"><pre style="margin: 0">    <span style="color: #0000ff;">def</span> Getson<span class="br0">&#40;</span>self<span class="br0">&#41;</span> :
        <span style="color: #0000ff;">print</span><span class="br0">&#40;</span>self.Couleur<span class="br0">&#41;</span>
        son = self.Son1
        <span style="color: #0000ff;">return</span> son</pre></td></tr></table></code><hr />
</div>Il ne reconnait pas l'attribut de la couleur.</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f1155/autres-langages/python/general-python/">Général Python</category>
			<dc:creator>nouby</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2184675/autres-langages/python/general-python/pourquoi-python-ne-reconnait-l-attribut-son1-cette-classe-munition/</guid>
		</item>
		<item>
			<title><![CDATA[Musique du jeu bloquée à cause d'un compteur]]></title>
			<link>https://www.developpez.net/forums/showthread.php?t=2184623&amp;goto=newpost</link>
			<pubDate>Mon, 13 Jul 2026 06:04:01 GMT</pubDate>
			<description>Salut ! 
 
je me suis fait un...</description>
			<content:encoded><![CDATA[<div>Salut !<br />
<br />
je me suis fait un petit compteur avant de lancer une action  :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
        <span style="color: #0000ff;">if</span> py.time.get_ticks<span class="br0">&#40;</span><span class="br0">&#41;</span> - start &gt; limit :
             <span style="color: #808080;"># action apr&egrave;s le temps &quot;limit&quot;.</span></pre></td></tr></table></code><hr />
</div>Le problème c'est qu'il empêche la musique de fonctionner, et pourtant il ne me bloque pas l'affichage.<br />
<br />
Ne peut-on pas écouter une musique pendant le comptage ?<br />
C'est la musique du jeu.</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f1155/autres-langages/python/general-python/">Général Python</category>
			<dc:creator>nouby</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2184623/autres-langages/python/general-python/musique-jeu-bloquee-cause-d-compteur/</guid>
		</item>
		<item>
			<title>Quel parametre manque-t-il à ma classe python ?</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2184622&amp;goto=newpost</link>
			<pubDate>Mon, 13 Jul 2026 00:57:12 GMT</pubDate>
			<description>Salut ! 
 
je suis pas trop...</description>
			<content:encoded><![CDATA[<div>Salut !<br />
<br />
je suis pas trop habitué aux classes, malgré que j'essais depuis longtemps de les comprendre en regardant plein de tutos vidéos et pdf.<br />
<br />
quel est le proglème ici ?<br />
<br />
<b>    super().__init__(self, Nom, Type, Camp)<br />
TypeError: Vehicule.__init__() takes 4 positional arguments but 5 were given</b><br />
<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #0000ff;">class</span> Vehicule :
&nbsp;
	<span style="color: #0000ff;">def</span> <span style="color: #0080ff;">__init__</span><span class="br0">&#40;</span>self, Nom, Type, Camp<span class="br0">&#41;</span> :
		self.Nom=Nom
		self.Type=Type
		self.Camp=Camp
&nbsp;
&nbsp;
<span style="color: #0000ff;">class</span> Vaisseau_humain<span class="br0">&#40;</span>Vehicule<span class="br0">&#41;</span> :
&nbsp;
	<span style="color: #0000ff;">def</span> <span style="color: #0080ff;">__init__</span><span class="br0">&#40;</span>self, Nom, Type, Camp<span class="br0">&#41;</span>:
		super<span class="br0">&#40;</span><span class="br0">&#41;</span>.<span style="color: #0080ff;">__init__</span><span class="br0">&#40;</span>self, Nom, Type, Camp<span class="br0">&#41;</span>
		self.Nom=Nom
		self.Type=Type
		self.Camp=Camp
&nbsp;
&nbsp;
MonVaisseau = Vaisseau_humain<span class="br0">&#40;</span><span style="color: #FF0000;">&quot;Le veilleur&quot;</span>,<span style="color: #cc66cc;">6</span>,<span style="color: #cc66cc;">0</span><span class="br0">&#41;</span></pre></td></tr></table></code><hr />
</div></div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f1155/autres-langages/python/general-python/">Général Python</category>
			<dc:creator>nouby</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2184622/autres-langages/python/general-python/parametre-manque-t-classe-python/</guid>
		</item>
		<item>
			<title>Voyez-vous une mauvaise syntaxe sur le else qui est en gras sur ce code ?</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2184619&amp;goto=newpost</link>
			<pubDate>Sun, 12 Jul 2026 12:32:05 GMT</pubDate>
			<description><![CDATA[*RESOLU !!! 
 
Python n'a pas...]]></description>
			<content:encoded><![CDATA[<div><b>RESOLU !!!<br />
<br />
Python n'a pas apprécié un commentaire que j'avais mis juste avant le else.</b><br />
<br />
Apparement il n'aime pas un commentaire entre guillemets, si on le place juste avant un else.<br />
<br />
<font color="#2F4F4F">&quot;&quot;&quot; Commentaire blablablabla &quot;&quot;&quot;</font><br />
<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br /></div></td><td valign="top"><pre style="margin: 0">                <span style="color: #0000ff;">if</span> Condition :
                    <span style="color: #0000ff;">print</span><span class="br0">&#40;</span><span style="color: #FF0000;">&quot;Cas A&quot;</span><span class="br0">&#41;</span>
&nbsp;
                <span style="color: #0000ff;">else</span>:
                    <span style="color: #0000ff;">print</span><span class="br0">&#40;</span><span style="color: #FF0000;">&quot;Cas B&quot;</span><span class="br0">&#41;</span></pre></td></tr></table></code><hr />
</div><br />
J'ai ce message :<br />
<br />
    else:<br />
    ^^^^<br />
SyntaxError: invalid syntax</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f1155/autres-langages/python/general-python/">Général Python</category>
			<dc:creator>nouby</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2184619/autres-langages/python/general-python/voyez-mauvaise-syntaxe-else-gras-code/</guid>
		</item>
		<item>
			<title><![CDATA[problème de constitution d'une classe]]></title>
			<link>https://www.developpez.net/forums/showthread.php?t=2184610&amp;goto=newpost</link>
			<pubDate>Sat, 11 Jul 2026 18:45:03 GMT</pubDate>
			<description><![CDATA[Salut ! 
 
j'ai une classe...]]></description>
			<content:encoded><![CDATA[<div>Salut !<br />
<br />
j'ai une classe munition qui comporte une méthode Mouv() qui gere le déplacement de la munition.<br />
<br />
et je voudrais lui donner à la classe, une liste des munitions existantes, puis si je veux détruire la munition, l'enlever de la liste, cependant ce qui me chiffone c'est que la liste des munitions étant dans la classe munition, je me demander ce qui se passerait car j'ai l'impression que la munition se supprime elle-meme ça fait bizarre.<br />
<br />
d'un autre coté, je voulais éviter de mettre la liste des munitions sur la classe vaisseau, car je voulais que cette liste n'existe pour le vaisseau que s'il a une arme.<br />
<br />
EDIT :<br />
<br />
Je viens de trouver une solution je crois, c'est que le vaisseau se crée une liste &quot;charges&quot; si sa variable self.Arme est supérieure à 0.<br />
la liste contiendrait alors les munitions de l'arme dont le numéro est donné dans self.Arme.<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br /></div></td><td valign="top"><pre style="margin: 0">                <span style="color: #808080;"># Supprime la munition des munitions existantes.</span>
                <span style="color: #0000ff;">if</span> self.Vaisseau.Arme == <span style="color: #cc66cc;">1</span> :
                    self.Vaisseau.Charges1.remove<span class="br0">&#40;</span>munition<span class="br0">&#41;</span>
                <span style="color: #0000ff;">elif</span> self.Vaisseau.Arme == <span style="color: #cc66cc;">2</span> :
                    self.Vaisseau.Charges2.remove<span class="br0">&#40;</span>munition<span class="br0">&#41;</span></pre></td></tr></table></code><hr />
</div>quand au mouvement de la munition il continuerait d'etre géré par la munition.</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f1155/autres-langages/python/general-python/">Général Python</category>
			<dc:creator>nouby</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2184610/autres-langages/python/general-python/probleme-constitution-d-classe/</guid>
		</item>
		<item>
			<title>Ecrire une librairie qui soit perenne ?</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2184558&amp;goto=newpost</link>
			<pubDate>Wed, 08 Jul 2026 18:38:08 GMT</pubDate>
			<description>Salut, 
 
- Comment écrire...</description>
			<content:encoded><![CDATA[<div>Salut,<br />
<br />
- Comment écrire une librairie qui soit perenne que même des utilisateurs débutants pourront utiliser facilement sans trop de prises de tête notamment avec l'installation et les configurations ?<br />
<br />
Je vois parfois des librairies qui ne fonctionnent pas car elles nécessitent la version 2 de python, est-ce que ce genre de problème peut encore arriver à l’avenir ? Et même d'une manière générale, est-il possible qu'une librairie qui fonctionne à une époque donnée avec une version de python donnée, ne fonctionne pas quelques années plus tard ? <br />
<br />
Faut-il donc préciser la version de python dans son dépôt ? Les utilisateurs pourront-ils télécharger les anciennes versions ?<br />
<br />
- Comment structurer son projet pour éviter le plus possible les prises de tête notamment avec l'installation et les configurations ?<br />
<br />
Je vois que maintenant UV semble avoir la côte, si j'ai bien compris on peut tout automatiser (environnement virtuel avec la version de python souhaitée,...).<br />
<br />
Merci.</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f1155/autres-langages/python/general-python/">Général Python</category>
			<dc:creator>Beginner.</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2184558/autres-langages/python/general-python/ecrire-librairie-soit-perenne/</guid>
		</item>
		<item>
			<title>Else mal placé ?</title>
			<link>https://www.developpez.net/forums/showthread.php?t=2184481&amp;goto=newpost</link>
			<pubDate>Thu, 02 Jul 2026 23:40:22 GMT</pubDate>
			<description><![CDATA[Salut ! 
 
*J'ai une erreur...]]></description>
			<content:encoded><![CDATA[<div>Salut !<br />
<br />
<b>J'ai une erreur sur le else de la ligne où la valeur ennemi5.Axe est à 0 :</b> <br />
<br />
Les trois premiers tests ont le même contenu mais c'est parce que je faisais un essai d'une chose, mais normalement chaque if a son propre contenu différent des autres.<br />
 <br />
J'ai même essayé de mettre un elif à la place de :<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br /></div></td><td valign="top"><pre style="margin: 0"><b>                else :
                    if</b></pre></td></tr></table></code><hr />
</div>mais cela a aussi été refusé.<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br /></div></td><td valign="top"><pre style="margin: 0"># La valeur ennemi5.Axe est &quot;ennemi&quot; donc il va vers le vaisseau joueur.
if ennemi5.Axe == -1 :
    
  
    if ennemi5.Rect.right &lt; MonVaisseau.Rect.left :
        ennemi5.Mouv(21)
        ennemi5.Image=img05[4]
        
    elif ennemi5.Rect.left &gt; MonVaisseau.Rect.right :
        ennemi5.Mouv(21)
        ennemi5.Image=img05[4]
        
    else :
        ennemi5.Rect.bottom += ennemi5.Vitesse[1]
        ennemi5.Mouv(21)
        ennemi5.Image=img05[4]

 
    if ennemi5.Rect.colliderect(approche) :
        ennemi5.Axe=0               

# La valeur de ennemi5.Axe vaut 0 içi
<b>else :</b>
    if Lst_ennemis_05.index(ennemi5) &lt; int(len(Lst_ennemis_05)/2) :
       ennemi5.Mouv(1021)
    else :
        ennemi5.Mouv(1121)</pre></td></tr></table></code><hr />
</div>l'erreur est :<br />
<br />
<div class="bbcode_container">
	<div class="bbcode_description">Code:</div>
	<hr /><code class="bbcode_code"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br /></div></td><td valign="top"><pre style="margin: 0">    <span style="color: #0000ff;">else</span> :
    ^^^^
SyntaxError: invalid syntax
&gt;&gt;&gt;</pre></td></tr></table></code><hr />
</div></div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f1155/autres-langages/python/general-python/">Général Python</category>
			<dc:creator>nouby</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2184481/autres-langages/python/general-python/else-mal-place/</guid>
		</item>
		<item>
			<title><![CDATA[Comment ajouter une méthode à un objet, qui n'existe pas dans sa classe ?]]></title>
			<link>https://www.developpez.net/forums/showthread.php?t=2184468&amp;goto=newpost</link>
			<pubDate>Wed, 01 Jul 2026 21:39:13 GMT</pubDate>
			<description>Salut ! 
 
En python je sais...</description>
			<content:encoded><![CDATA[<div>Salut !<br />
<br />
En python je sais rajouter des attributs à un objet qu'il n'a pas dans sa classe, mais je sais pas faire pour les méthodes.</div>

]]></content:encoded>
			<category domain="https://www.developpez.net/forums/f1155/autres-langages/python/general-python/">Général Python</category>
			<dc:creator>nouby</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/d2184468/autres-langages/python/general-python/ajouter-methode-objet-n-existe-classe/</guid>
		</item>
	</channel>
</rss>
