Skip to main content

thonny-classinus

Plugin Thonny qui ajoute un panneau Classinus a droite de l'editeur.

Etape 1 : connexion au compte Classinus (via le navigateur), puis une question tapee dans le panneau et une reponse qui s'affiche au fil de l'eau.

Etape 2 : deux boutons, "Envoyer mon code" (fichier ouvert, partie selectionnee, derniere erreur et sortie du programme) et "Expliquer cette erreur". Rien ne part sans un clic de l'eleve. Le code est ajoute au message envoye a Classinus ; les tailles maximales sont dans defauts.json (max_code, max_sortie).

Les consignes propres a Thonny (ou est Classinus, ce que font les boutons, comment repondre : texte simple, code Python dans un bloc python) ne sont plus dans le plugin : le serveur les ajoute lui-meme (fichier core/consignes_thonny.txt du backend) quand le plugin se declare client Thonny. Le plugin envoie seulement client et le nom de ses boutons dans la langue de l'eleve (libelles_client). Modifier ce fichier du serveur change le comportement de Classinus dans Thonny.

Etape 3 : sous chaque bloc de code de la reponse, "Copier", "Inserer" (l'eleve valide, puis Ctrl+Z annule) et "Nouvel onglet" (le code s'ouvre dans un onglet non enregistre). Le lancement du script reste le bouton vert de Thonny.

Boutons du panneau : "Envoyer mon code", "Corriger mon code", "Expliquer cette erreur", "Expliquer ma selection" (envoie seulement la partie selectionnee), "Nouvelle conversation" (efface la discussion). Si l'eleve est dans le pas a pas du debogueur, la ligne ou il en est est envoyee avec le code.

Affichage : la question de l'eleve a droite, la reponse a gauche. Les couleurs du code sont celles du theme de Thonny, les fonds suivent son theme clair ou sombre. Les liens [texte](https://...) sont cliquables, le vrai site est affiche a cote du texte et une fenetre de confirmation l'annonce avant d'ouvrir le navigateur (seulement http et https). Un passage "ligne 7" dans une reponse est cliquable et surligne la ligne dans l'editeur.

Les adresses (serveur Classinus, service de connexion) ne sont jamais ecrites dans le code : elles viennent de defauts.json, de la page de reglages Classinus de Thonny, ou des variables d'environnement CLASSINUS_BACKEND_URL et CLASSINUS_SUPABASE_URL.

Etape 5 : longueur de reponse (courte, moyenne, longue) et choix du modele quand l'agent en propose, memes choix que le site. Bouton "Joindre un fichier" (photo 5 Mo max, document 15 Mo max, 5 fichiers) : envoi au serveur au moment de Envoyer (pieces_jointes.py). Chaque conversation du panneau a son identifiant et ses messages s'enchainent dans le meme fil de l'historique du site (conversation.py).

Tableaux : un tableau Markdown dans la reponse s'affiche en vrai tableau aligne (tableaux.py), avec une barre de defilement horizontale si le panneau est trop etroit. Les consignes Thonny du serveur autorisent les tableaux.

Boutons du bas et du haut du panneau : "Joindre un fichier" (sur sa ligne, texte entier) et "Reglages" (longueur de reponse, effort, mode pedagogique, modes ressources, comme sur le site). Le bouton "Modele" est en haut du panneau, avec les memes regles que sur le site : il n'apparait que si le serveur propose des modeles, la liste est groupee par fournisseur, il n'y a pas de mode "Auto". Le modele actif est le dernier choix de l'eleve s'il est encore propose, sinon DeepSeek Flash (modele_par_defaut dans defauts.json). Les icones des fournisseurs sont les vrais logos (logos_data.py, bibliotheque libre @lobehub/icons-static-svg, licence MIT), l'icone "Auto" est dessinee par le plugin (icones.py). Le mode pedagogique et les modes ressources sont enregistres sur le serveur pour la conversation en cours (parametres_conversation.py), comme sur le site.

Lignes citees : quand la reponse cite des lignes du code envoye (« ligne 7 », « lignes 3 a 5 »), elles sont surlignees toutes seules dans l'editeur a la fin de la reponse, sans bouger le curseur ni le texte, et seulement si le fichier ouvert est encore exactement celui que l'eleve a envoye (editeur.surligner_lignes_citees). Dans le panneau, « ligne N » reste cliquable et ressort en jaune.

Fichiers et pages de Classinus : un lien qui pointe vers un fichier servi par Classinus (serveur ou stockage) n'affiche jamais l'adresse brute. Il est annonce « (Classinus) » et ouvre la fenetre « Fichier Classinus » (fichier_classinus.py) : ouvrir dans Thonny (texte et code, nouvel onglet non enregistre), enregistrer sur l'ordinateur, ouvrir dans le navigateur (PDF et images). Les types proposes sont dans defauts.json (extensions_texte, extensions_navigateur, taille_max_texte), les adresses reconnues viennent des reglages (backend_url, supabase_url, site_url). Un lien vers une page du site Classinus s'ouvre dans le navigateur avec la fenetre de confirmation habituelle, qui annonce « Classinus ».

Mises a jour : Thonny ne previent pas quand un plugin a une nouvelle version, c'est donc le plugin qui le fait (mise_a_jour.py). Au demarrage, il interroge PyPI dans un fil a part (adresse et intervalle dans defauts.json : mise_a_jour_url, mise_a_jour_intervalle_heures, 24 h par defaut) et affiche un bandeau en haut du panneau si une version plus recente existe. Le bandeau se ferme avec "Fermer" et ne reparait pas pour cette version, une version encore plus recente le fait reparaitre. Hors ligne ou en cas de reponse inattendue, rien ne s'affiche. Seules les versions deja installees avec cette fonction peuvent l'utiliser : elle n'existe pas dans les versions publiees avant elle.

Langues : chaque langue est un fichier du dossier thonnycontrib/classinus/langues/ (fr.py, en.py) avec NOM et TEXTES. Tout texte visible passe par t("cle") et existe dans toutes les langues, jamais dans une seule. Pour ajouter une langue : copier en.py en <code>.py (par exemple ar.py), changer NOM, traduire les valeurs sans toucher aux cles ni aux %s. La langue est decouverte toute seule (reglage "auto" ou son code dans Outils > Options > Classinus). Le test python -m unittest discover tests echoue si une cle manque dans une langue, si un texte est vide, si les %s different, ou si le code appelle une cle qui n'existe pas.

Metadata

Release files for thonny-classinus 0.6.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for thonny-classinus 0.6.2
File Size Uploaded
thonny_classinus-0.6.2.tar.gz 62.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for thonny-classinus 0.6.2
File Interpreter ABI Platform
thonny_classinus-0.6.2-py3-none-any.whl Python 3 none any Details

Total release size: 135.0 kB

Release files / thonny_classinus-0.6.2.tar.gz

Download URL thonny_classinus-0.6.2.tar.gz
Size 62.6 kB
Tags Source
SHA-256 checksum
How to use checksums
c6e7bc203b54fff06067d5f5b3ffb8cdb32bd3de33935203e9b15aacb58b4414
BLAKE2b-256 checksum
How to use checksums
ca0aa2c1d8a9a3f3dbf1551224dcd0133a480326a1fd3c804bcc3b01714ea317
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.0

Release files / thonny_classinus-0.6.2-py3-none-any.whl

Download URL thonny_classinus-0.6.2-py3-none-any.whl
Size 72.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1b3c81d88574d0539065563afc77096d275229d4817364d6150e9fbe809f452b
BLAKE2b-256 checksum
How to use checksums
676cab65ee3ca3fc4976dac2182fbd2ec90ce65e42aa45d4a2b158eefb870f0d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.0

Release history Release notifications | RSS feed

0.6.3

2 release files

This release

0.6.2 This release

2 release files

0.6.1

2 release files

0.6.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page