<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://wiki.phobos-net.fr/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://wiki.phobos-net.fr/feed.php">
        <title>wikinotes</title>
        <description></description>
        <link>https://wiki.phobos-net.fr/</link>
        <image rdf:resource="https://wiki.phobos-net.fr/lib/tpl/dokuwiki/images/favicon.ico" />
       <dc:date>2026-05-10T02:52:47+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/core/module_et_paquetage?rev=1730644855&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/javascript/core/fondamentaux?rev=1728818667&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/go/tutoriels/ecrire_un_module_en_go?rev=1691316809&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/bash/deplacer_les_fichier_caches?rev=1696704515&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/powershell/debogage_des_scripts?rev=1688464707&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/start?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/git/configuration?rev=1755692957&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/git/gerer-zone-index?rev=1732028219&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/git/start?rev=1695128712&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/arduino/uno/configurer-entrees-sorties?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/frameworks/pyramid/routage?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/flask/routage?rev=1775809342&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/pygtk/agencement-widgets?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/android/installer-android-studio?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/arduino/interruptions?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/c-cpp/preprocesseur?rev=1618743790&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/git/branches?rev=1694795728&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/outils/gcc?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/manipulation-de-fichiers?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/arduino/exemples/passage-a-niveau?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/core/exceptions?rev=1729182573&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/core/execution_programme_python_depuis_environnement_virtuel?rev=1753103016&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask_formulaires_wtforms?rev=1775989580&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/flask/extensions/flask_migrate?rev=1757509654&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/bash/rechercher-chaine-dans-plusieurs-fichiers?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/c-cpp/pointeurs?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/git/depot-distant?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/m4/start?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/powershell/fonction_et_module?rev=1692702838&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/powershell/parametres?rev=1693165821&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/powershell/tableaux?rev=1687346188&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/caracteres-et-encodage?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/environnements_virtuels?rev=1753090988&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/logging?rev=1729000987&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/raspberry/install-debian?rev=1776249503&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/raspberry/serveur-audio?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/arduino/shields/encodeur-rotatif?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/bash/exemples/verifier_mode_execution_interactif?rev=1674119325&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/frameworks/pyramid/presentation?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/core/structures_de_controle?rev=1753634674&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/core/tuples?rev=1701542132&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/core/type_dictionnaire?rev=1701511791&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/core/type_ensemble?rev=1701334991&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/core/types_numeriques?rev=1701508457&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/jupyter-notebook/start?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/pygtk/start?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask-sqlalchemy/activer-contraintes-fk-sqlite-avec-flask-sqlachemy?rev=1756631453&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask-sqlalchemy/relation_agregation?rev=1753198299&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/pygtk/widgets/start?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/bonnes-pratiques?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/expression-rationnelle?rev=1728748968&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/programmation-evenementielle?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/arduino/bonnes-pratiques?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/arduino/nouveau-projet-eclipse?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/arduino/port-serie?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/arm/distribution-linux-minimale?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/bash/convertir_colonne_en_ligne?rev=1622208888&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/bash/debogage?rev=1669211307&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/bash/generer_nombre_aleatoire?rev=1619346491&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/c-cpp/principaux-usages-gcc?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/git/annuler-modifs-non-commit?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/git/generer-archive?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/git/modifier-commit?rev=1643150858&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/git/workflow?rev=1695300487&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/outils/crosstool?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/outils/qemu?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/powershell/ecrire_un_module_powershell?rev=1693139123&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/powershell/lecture_entrees_utilisateur?rev=1688056302&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/powershell/structures_de_controle?rev=1687522079&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/annotations?rev=1672674892&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/bonnes-pratiques?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/debogage?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/entetes_de_scripts?rev=1701194606&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/operateur-etoile?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/pip?rev=1638106066&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/snmp?rev=1641573614&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/sqlalchemy?rev=1733182283&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/venv_script_activate_absent?rev=1728923557&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/raspberry/linux-from-scratch?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/rust/installer_rust?rev=1726834538&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/web/chameleon?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/android/android-studio/anatomie-projet?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/android/android-studio/erreur-mise-a-jour?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/arduino/the-bomb/start?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/esp/esp32/micropython?rev=1617526396&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/esp/esp8266/connexion-a-un-reseau-wifi?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/git/cas-pratiques/annuler-dernier-commit?rev=1635764331&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/go/tutoriels/demarrer_en_go?rev=1690984059&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/iot/esp8266/communication_serie_via_minicom?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/iot/esptools/start?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/php/erreurs/deprecated-constructor?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/php/erreurs/undefined-function-dl?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/core/installer_interpreteurs?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/core/type_chaines_de_caracteres?rev=1701508391&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/core/variables_environnement?rev=1753023789&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/flask/architecture_projet_flask?rev=1775376548&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/flask/definir_commande_cli?rev=1775393751&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask_application_factory?rev=1753528543&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask_sqlalchemy?rev=1756406120&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/flask/templates?rev=1775801399&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/jupyter-notebook/installation_jupyter_via_docker?rev=1630235390&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/frameworks/pyramid/tutoriaux/fichiers-statiques?rev=1612216289&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/flask/exemples/redirections?rev=1775538587&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/flask/extensions/flask_maintenance?rev=1758366183&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask-sqlalchemy/relation_composition?rev=1754250594&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask-sqlalchemy/relation_many-to-many?rev=1754432187&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask-sqlalchemy/relation_one-to-many?rev=1754217789&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/flask/tutoriel/webstore?rev=1733180890&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.phobos-net.fr/doku.php/dev/python/flask/extensions/flask-sqlalchemy/afficher-les-requetes?rev=1756406120&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://wiki.phobos-net.fr/lib/tpl/dokuwiki/images/favicon.ico">
        <title>wikinotes</title>
        <link>https://wiki.phobos-net.fr/</link>
        <url>https://wiki.phobos-net.fr/lib/tpl/dokuwiki/images/favicon.ico</url>
    </image>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/core/module_et_paquetage?rev=1730644855&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-11-03T14:40:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:core:module_et_paquetage</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/core/module_et_paquetage?rev=1730644855&amp;do=diff</link>
        <description>dev python module package

:TODO_DOCUPDATE:

Python : module et package

Généralités à propos des modules Python

Il y a 3 types de modules que l&#039;on peut d&#039;intégrer à son code :

	*  Un module écrit en Python ;
	*  Un module écrit en C et chargé dynamiquement comme le module</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/javascript/core/fondamentaux?rev=1728818667&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-13T11:24:27+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:javascript:core:fondamentaux</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/javascript/core/fondamentaux?rev=1728818667&amp;do=diff</link>
        <description>dev javascript js code

:TODO_DOCUPDATE:

Javascript : Fondamentaux

Javascript a été conçu pour rendre les pages web dynamiques. Il s&#039;intègre et permet d&#039;interagir avec les documents HTML et le CSS.

Un script peut être introduit dans n&#039;importe quelle partie du document</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/go/tutoriels/ecrire_un_module_en_go?rev=1691316809&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-08-06T10:13:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:go:tutoriels:ecrire_un_module_en_go</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/go/tutoriels/ecrire_un_module_en_go?rev=1691316809&amp;do=diff</link>
        <description>dev module tutoriel go

Écrire un module en Go

Ce tutoriel propose de créer deux modules:

	*  Le premier sera une bibliothèque prévue pour être importée par d&#039;autres bibliothèques ou applications ;
	*  Le second est une application appelante utilisant le premier.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/bash/deplacer_les_fichier_caches?rev=1696704515&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-10-07T18:48:35+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:bash:deplacer_les_fichier_caches</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/bash/deplacer_les_fichier_caches?rev=1696704515&amp;do=diff</link>
        <description>dev bash shell move deplacer

Déplacer les fichiers cachés avec mv

Lors de la phase de globbing, l’interpréteur remplace les métacaractères tels que * par les noms de fichiers. Par défaut ce développement n&#039;inclus pas les fichiers cachés :


# Le dossier courant contient 3 fichiers
# dont 1 est caché
tree -a .
.
├── fileA.txt
├── fileB.txt
└── .hidden_file.txt

0 directories, 3 files

# Afficher les valeurs après développement de &#039;*&#039;
echo *
fileA.txt fileB.txt</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/powershell/debogage_des_scripts?rev=1688464707&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-07-04T09:58:27+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:powershell:debogage_des_scripts</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/powershell/debogage_des_scripts?rev=1688464707&amp;do=diff</link>
        <description>dev powershell debogage

PowerShell : Débogage des scripts

Généralités

Lorsque des erreurs se produisent, elles sont stockées dans le tableau $Error. Quand une nouvelle erreur est générée, elle est insérée à $Error[0], et l’index des autres erreurs est augmenté d’une unité.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/start?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:start</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/start?rev=1612216289&amp;do=diff</link>
        <description>dev python

Python: introduction

Quelques notes à propos des spécificités du langage Python basées sur mes écueils.

Python a été conçu avec l&#039;objectif d&#039;être lisible, compréhensible faciitant son accès et les échanges de codes. Les choix de conceptions ont été guidés par pragmatisme et non par dogmatisme.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/git/configuration?rev=1755692957&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-08-20T12:29:17+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:git:configuration</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/git/configuration?rev=1755692957&amp;do=diff</link>
        <description>git dev config configuration

Configuration des dépots Git

La commande git config permet de personnaliser/spécifier le comportement par défaut de git

Afficher la configuration

Pour lister la configuration actuellement définie:


git config --list


Portée des définitions</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/git/gerer-zone-index?rev=1732028219&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-11-19T14:56:59+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:git:gerer-zone-index</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/git/gerer-zone-index?rev=1732028219&amp;do=diff</link>
        <description>dev git index commit

Gestion de la zone d&#039;index git

Un commit est un instantané de la zone d&#039;index ou zone d&#039;assemblage (staging area). La zone d&#039;index est hors du répertoire de travail. Seuls les fichiers et dossiers présents dans la zone d&#039;index seront enregistrés en l’état lors du commit.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/git/start?rev=1695128712&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-19T13:05:12+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:git:start</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/git/start?rev=1695128712&amp;do=diff</link>
        <description>git dev

Git

Git est un outil de suivi de version ou gestionnaire de révisions. Contrairement à certains outils centralisés du même type comme svn, Git est distribué, ce  qui le rend très réactif, plus didactique car aucun serveur n&#039;est nécessaire pour apprendre à travailler avec Git.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/arduino/uno/configurer-entrees-sorties?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:arduino:uno:configurer-entrees-sorties</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/arduino/uno/configurer-entrees-sorties?rev=1612216289&amp;do=diff</link>
        <description>dev port arduino

Configuration des entrées-sorties numériques

Les broches digitales du port parallèle de l&#039;Arduino peuvent être indépendamment configurées comme des entrées ou des sorties. C&#039;est la fonction pinMode() qui va permettre de configurer chaque ligne du port.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/frameworks/pyramid/routage?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:frameworks:pyramid:routage</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/frameworks/pyramid/routage?rev=1612216289&amp;do=diff</link>
        <description>dev framework pyramid route

Routage avec Pyramid

Deux principales techno pour le routage

	*  URLDispatch
	*  Traversal

URLdispatch

A une route on associe un ou plusieurs motifs intégrant des parties constantes (chaînes littérales) et des variables (marqueurs). Lorsqu&#039;il y a correspondance entre l&#039;</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/flask/routage?rev=1775809342&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-04-10T08:22:22+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:flask:routage</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/flask/routage?rev=1775809342&amp;do=diff</link>
        <description>dev python flask routes

Flask : routage

A propos des routes

Définir une URL ayant un sens pour l&#039;utilisateur est préférable en général. Les deux URL ci-dessous peuvent produire le même résultat :

	*  &lt;https://www.example.com/script?action=33257&gt;
	*  &lt;https://www.example.com/create/user&gt;

Dans le second cas, on peut directement comprendre le sens de l&#039;action à la lecture de l&#039;</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/pygtk/agencement-widgets?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:pygtk:agencement-widgets</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/pygtk/agencement-widgets?rev=1612216289&amp;do=diff</link>
        <description>dev pygtk widget conteneur

Agencer les widgets

Pour organiser les différents composants de l&#039;interface graphique (widgets) PyGTK propose un système de boites (box) qui sont des conteneurs invisibles à l’intérieur desquels on insère les widgets. Il existe deux familles: les conteneurs verticaux et les horizontaux. Dans un conteneur horizontal, les objets insérés sont placés les un à la suite des autres en file indienne. Dans un conteneur vertical, les objets seront disposés verticalement les un…</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/android/installer-android-studio?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:android:installer-android-studio</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/android/installer-android-studio?rev=1612216289&amp;do=diff</link>
        <description>dev android ide

Installer Android Studio

prérequis

Les prérequis sont listés pour chaque sur la page de téléchargement de l&#039;IDE &lt;https://developer.android.com/studio/?utm_source=android-studio&gt; dans la section “System requirements”. Dans le cas de GNU/Linux, pour la version 3.4 d&#039;android Studio:

	*  GNOME or KDE desktop (Tested on Ubuntu® 14.04 LTS, Trusty Tahr (64-bit distribution capable of running 32-bit applications)</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/arduino/interruptions?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:arduino:interruptions</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/arduino/interruptions?rev=1612216289&amp;do=diff</link>
        <description>dev arduino interruption

Gestion des interruptions avec Arduino

Les interruption externes peuvent être câblées sur les broches 2 et 3 de l&#039;ATmega 328. On utilisera la fonction attachInterrupt() pour configurer la gestion des interruptions externes.


#define PIN_2 0
#define PIN_3 1

void traitementSurInterruption();

void setup()
{
   attachInterrupt(PIN_2, traitementSurInterruption, RAISING);
}</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/c-cpp/preprocesseur?rev=1618743790&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-04-18T11:03:10+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:c-cpp:preprocesseur</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/c-cpp/preprocesseur?rev=1618743790&amp;do=diff</link>
        <description>dev c cpp todo

Le préprocesseur

Le préprocesseur (de texte) est un programme s’exécutant avant la compilation. Il parcours le fichier source à la recherche de directives de précompilation (introduites par le caractères &#039;#&#039;) qu&#039;il traite et remplace.

Directive include</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/git/branches?rev=1694795728&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-15T16:35:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:git:branches</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/git/branches?rev=1694795728&amp;do=diff</link>
        <description>git dev branches todo

Gestion des branches avec git

Le HEAD est le pointeur sur le dernier commit de la branche courante. La commande git branch liste les branches existantes et marque d&#039;une astérisque la branche courante:


# lister les branches
git branch

# Afficher seulement le nom de la branche courante
git branch --show-current

# lister les branches non fusionnées
# avec la branche courante
git branch --no-merged

# lister les branches fusionnées avec
# avec la branche courante
git bran…</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/outils/gcc?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:outils:gcc</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/outils/gcc?rev=1612216289&amp;do=diff</link>
        <description>dev c compilation gcc

GCC

Initialement appelé Gnu C Compiler, il a été renommé Gnu Compiler Collection puisqu&#039;il permet de compiler divers langages tels que:

	*  C/C++
	*  Objective C
	*  Ada
	*  Java
	*  VHDL
	*  etc

Gnu Compiler Collection est l&#039;outil généraliste de compilation du projet GNU. Il s&#039;articule autour de plusieurs outils:</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/manipulation-de-fichiers?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:manipulation-de-fichiers</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/manipulation-de-fichiers?rev=1612216289&amp;do=diff</link>
        <description>dev python fichier file

Manipulation des fichiers en python

Pour manipuler aisément les fichiers il faut avoir abordé 3 notions:

	*  l&#039;encodage
	*  l&#039;itération
	*  le context manager

Écrire du texte dans un fichier

Pour lire et écrire du texte dans les fichiers, il faut spécifier correctement l&#039;encodage. L&#039;objet fichier est créé avec la fonction built-in open(), il se chargera d&#039;encoder/décoder les caractères en fonction de l&#039;encodage choisit:</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/arduino/exemples/passage-a-niveau?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:arduino:exemples:passage-a-niveau</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/arduino/exemples/passage-a-niveau?rev=1612216289&amp;do=diff</link>
        <description>dev arduino exemple todo

Arduino: Passage à niveau

Schéma du montage

Sketch

Ci-dessous le programme complet.



/*
  Fun MOOC, Programmer un objet avec Arduino
  TP 04: Le passage à niveau

  Le fonctionnement normal est un feu allumé au rouge (le feu vert est éteint) et une barrière fermée (0°).
  Le fonctionnement normal est interrompu par l&#039;appui sur un bouton poussoir.
  Si l&#039;appui du bouton est détecté, alors la barrière (actionnée par le servomoteur) se relève doucement.
  Lorsque la b…</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/core/exceptions?rev=1729182573&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-17T16:29:33+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:core:exceptions</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/core/exceptions?rev=1729182573&amp;do=diff</link>
        <description>dev python exceptions

Python: les exceptions

	*  Une exception n&#039;est pas une fatalité, c&#039;est un mécanisme de communication d&#039;erreur tout à fait normal dans un programme et on est capable de la capturer et d&#039;y réagir.
	*  Les exceptions fournissent de l&#039;information sur l&#039;erreur qui se produit, c&#039;est donc un mécanisme de notification d&#039;erreur très utile.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/core/execution_programme_python_depuis_environnement_virtuel?rev=1753103016&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-07-21T13:03:36+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:core:execution_programme_python_depuis_environnement_virtuel</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/core/execution_programme_python_depuis_environnement_virtuel?rev=1753103016&amp;do=diff</link>
        <description>dev python venv programme execution script

Python : Exécuter un programme basé sur un environnement virtuel

En général, lorsqu&#039;un un script ou un programme Python s&#039;appuie sur des dépendances hors paquetages de la bibliothèque standard on utilise un environnement virtuel Python.

Grossièrement, la création de l&#039; environnement virtuel conduit à dédier un interpréteur Python et créer un environnement dans lequel le programme ou script peut être lancé correctement (modification PATH et PYTHONPATH…</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask_formulaires_wtforms?rev=1775989580&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-04-12T10:26:20+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:flask:flask_formulaires_wtforms</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask_formulaires_wtforms?rev=1775989580&amp;do=diff</link>
        <description>dev python flask web formulaire

:TODO_DOCUPDATE:

Flask : Créer des formulaires via Flask-WTF

WTForms est une bibliothèque Python permettant de gérer des formulaires web via des Classes et objets en POO.

Ici on utilise le paquet Flask-WTF qui intègre la bibliothèque WTForms au micro framework Flask.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/flask/extensions/flask_migrate?rev=1757509654&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-09-10T13:07:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:flask:extensions:flask_migrate</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/flask/extensions/flask_migrate?rev=1757509654&amp;do=diff</link>
        <description>dev python flask extension db migrate migration

Flask : Gérer les migrations avec l&#039;extension Flask-Migrate

Présentation

Flask-Migrate s&#039;appuie sur Alembic pour gérer les migrations de la base de données gérée par l&#039;ORM (SQLAlchemy). Ainsi le modèle de données définit dans l&#039;application Flask peut être amendé/corrigé, c&#039;est l&#039;extension Flask-Migrate qui se chargera de créer les script de migrations capables de modifier le schéma de la base de données préexistante pour que le nouveau modèle de…</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/bash/rechercher-chaine-dans-plusieurs-fichiers?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:bash:rechercher-chaine-dans-plusieurs-fichiers</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/bash/rechercher-chaine-dans-plusieurs-fichiers?rev=1612216289&amp;do=diff</link>
        <description>sysadmin dev script bash recherche

Rechercher une chaîne dans un ensemble de fichiers

Retrouver une chaîne de caractères dans un ensemble de fichiers sources. Ce script est une simple boucle for. Elle peut être directement tapée dans l’interpréteur bash. On récupère les fichiers dont on souhaite scruter le contenu. Ils sont fournis séquentiellement en argument à la commande grep avec les options</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/c-cpp/pointeurs?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:c-cpp:pointeurs</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/c-cpp/pointeurs?rev=1612216289&amp;do=diff</link>
        <description>dev c pointeurs tableaux

pointeurs et tableaux

Un pointeur est une variable dont la taille est adaptée au stockage de l&#039;adresse d&#039;une autre variable. On déclare un pointeur via l&#039;opérateur * suffixé par le type pointé.


// Déclaration d&#039;une variable de type pointeur sur entier ayant le label ptr_int
int* ptr_int;</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/git/depot-distant?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:git:depot-distant</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/git/depot-distant?rev=1612216289&amp;do=diff</link>
        <description>git dev depot

Les dépôts distants

Git est un gestionnaire de révision distribué. Il intègre donc des mécanismes de synchronisation entre dépots. Un même projet peut être lié à plusieurs dépôts distants, ce sont d&#039;autre version du même projet disponible sur le réseau/Internet. Collaborer avec d&#039;autre personne consiste à gérer ces dépôts distants.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/m4/start?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:m4:start</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/m4/start?rev=1612216289&amp;do=diff</link>
        <description>dev macros m4 todo

M4

M4 est la mise en œuvre par le projet GNU du processeur de macro traditionnel UNIX. M4 lit et interprète un fichier texte en entrée et produit un fichier texte en sortie. Il possède des fonctions internes permettant notamment:

	*  d&#039;inclure des fichiers,</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/powershell/fonction_et_module?rev=1692702838&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-08-22T11:13:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:powershell:fonction_et_module</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/powershell/fonction_et_module?rev=1692702838&amp;do=diff</link>
        <description>dev powershell fonction

PowerShell : Fonctions et modules

Lorsqu&#039;on produit du code on peut avoir envie ou besoin de :

	*  Réutiliser une même séquence d&#039; instructions plusieurs fois dans un script ;
	*  Réutiliser des traitements dans un autre contexte.

Les fonctions</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/powershell/parametres?rev=1693165821&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-08-27T19:50:21+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:powershell:parametres</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/powershell/parametres?rev=1693165821&amp;do=diff</link>
        <description>dev powershell

PowerShell : Utiliser des paramètres nommés

Pour plus de flexibilité, les scripts et les fonctions peuvent accepter des paramètres nommés.

On déclare les paramètres nommés en début de script ou de fonction avec le bloc Param():


# Début de script aScript.ps1
Param (
  $FirstParam,
  $SecondParam,
  $ThirdParam
)</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/powershell/tableaux?rev=1687346188&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-06-21T11:16:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:powershell:tableaux</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/powershell/tableaux?rev=1687346188&amp;do=diff</link>
        <description>dev powershell tableau array

PowerShell : Les tableaux

Les tableaux (Array) sont des variables permettant de stocker des valeurs de même type.

Créer une variable tableau


# Le type tableau est déterminé lors de l&#039;affectation
# Les éléments sont séparés par la virgule
$computers = &quot;NODE-ADC1&quot;,&quot;NODE-2F03&quot;,&quot;NODE-AA4E&quot;
$numbers = 33,806,10

# Un tableau a le type &#039;&#039;System.Array&#039;&#039; cette information
# est retournée par la méthode GetType()
# Créer un tableau d&#039;un seul élément en spécifiant le type…</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/caracteres-et-encodage?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:caracteres-et-encodage</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/caracteres-et-encodage?rev=1612216289&amp;do=diff</link>
        <description>dev python charset caracteres encodage encoding

Jeux de caractères et encodage avec python

Le PEP 263 détaille les problématiques liées à l&#039;encodage de caractères en Python et la directive coding.

Encodage par défaut

Il est possible de récupérer l&#039;encodage par défaut utilisé par le système courant via le module</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/environnements_virtuels?rev=1753090988&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-07-21T09:43:08+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:environnements_virtuels</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/environnements_virtuels?rev=1753090988&amp;do=diff</link>
        <description>dev python virtualenv venv environnement virtuel

Environnements virtuels en Python

Plusieurs solutions existent. Depuis python 3.3 la bibliothèque venv est intégrée, c&#039;est la solution recommandée avec Python3, l&#039;usage de virtualenv est déprécié ou réservé à des besoins spécifiques.

virtualenv</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/logging?rev=1729000987&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-15T14:03:07+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:logging</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/logging?rev=1729000987&amp;do=diff</link>
        <description>Les logs en Python

La bibliothèque standard python intègre un module simple et flexible pour générer ses logs. 

Lorsqu&#039;on utilise directement les fonctions au niveau du module, on utilise en fait le logger par défaut root qui est configuré pour écrire sur la sortie erreur standard.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/raspberry/install-debian?rev=1776249503&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-04-15T10:38:23+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:raspberry:install-debian</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/raspberry/install-debian?rev=1776249503&amp;do=diff</link>
        <description>raspberry pi raspbian

:ARCHIVE:

Raspbian
RaspbianRaspberry Pi OSRaspberry Pi Imager

Une version de Debian compilée pour le Raspberry Pi est disponible sur le site officiel. L&#039;image peut être téléchargée à cette adresse: &lt;http://www.raspberrypi.org/downloads&gt;

L&#039;installation se fait simplement par copie de l&#039;image du système sur la carte SD.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/raspberry/serveur-audio?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:raspberry:serveur-audio</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/raspberry/serveur-audio?rev=1612216289&amp;do=diff</link>
        <description>Serveur de son

Utiliser le raspberry en tant que serveur de son grâce au serveur Pulseaudio. Le raspberry sera connecté à la chaine Hifi. Tous les postes du réseau pourront rediriger leurs flux audios sur le serveur pulseaudio du raspberry afin que le son soit joué sur la chaine.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/arduino/shields/encodeur-rotatif?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:arduino:shields:encodeur-rotatif</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/arduino/shields/encodeur-rotatif?rev=1612216289&amp;do=diff</link>
        <description>electronique shield arduino

Encodeur rotatif Snootlab

Installer la bibliothèque disponible sur le github. L&#039;installation d&#039;une nouvelle bibliothèque dans l&#039;IDE Arduino est détaillée ici

Le fonctionnement correct du shield repose sur l&#039;activation et la gestion des interruptions. Le fichier</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/bash/exemples/verifier_mode_execution_interactif?rev=1674119325&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-01-19T09:08:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:bash:exemples:verifier_mode_execution_interactif</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/bash/exemples/verifier_mode_execution_interactif?rev=1674119325&amp;do=diff</link>
        <description>dev bash exemple code snippet guide howto

:TODO_DOCUPDATE:

Bash : vérifier le mode d&#039;exécution interactif

Lorsque Bash est lancé en mode interactif l&#039;option -i est précisée et la variable PS1 est définie. Les options actives sont listées dans la variable $-.

Le script ~/.basrc utilise la valeur de cette variable pour déterminer si l&#039;exécution courante est interactive ou non et adapter son comportement.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/frameworks/pyramid/presentation?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:frameworks:pyramid:presentation</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/frameworks/pyramid/presentation?rev=1612216289&amp;do=diff</link>
        <description>dev python pyramid framework

Pyramid

Quelques notes extraites de la documentation 1.6 du framework Pyramid.

Système de template

Pyramid a été pensé pour pourvoir être interfacé facilement avec des programmes de rendus externes ou “renderers”. Des binding existent pour:</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/core/structures_de_controle?rev=1753634674&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-07-27T16:44:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:core:structures_de_controle</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/core/structures_de_controle?rev=1753634674&amp;do=diff</link>
        <description>dev python

Structures de contrôle

Structures conditionnelles

if


if a_condition:
    # bloc a exécuter lorsque a_condition est vraie
elif other_condition:
    # bloc a exécuter lorsque a condition est fausse
    # et other_condition est vraie
else:
    # bloc a exécuter si les conditions précédentes sont fausses.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/core/tuples?rev=1701542132&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-02T18:35:32+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:core:tuples</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/core/tuples?rev=1701542132&amp;do=diff</link>
        <description>dev python

Python: le type tuple

le tuple (traduit couple ou n-uplets) est un type builtin très proche de la liste mais immuable: c&#039;est une séquence, on peut donc y appliquer les opérations telles que:

	*  Accéder aux éléments avec l’opérateur d&#039;indexation</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/core/type_dictionnaire?rev=1701511791&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-02T10:09:51+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:core:type_dictionnaire</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/core/type_dictionnaire?rev=1701511791&amp;do=diff</link>
        <description>dev cours python dictionnaire

Python: le type dictionnaire

Les dictionnaires sont des tables de hash, la principale caractéristique de cette structure de données est que les opérations (telles que l&#039;insertion ou le test d&#039;appartenance) sont indépendantes du nombre d&#039; éléments.

	*  Les dictionnaires sont des objets mutables, ils peuvent être modifiés en place.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/core/type_ensemble?rev=1701334991&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-30T09:03:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:core:type_ensemble</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/core/type_ensemble?rev=1701334991&amp;do=diff</link>
        <description>dev python set ensemble

Python: les ensembles ou sets

Les sets ou ensembles sont très proches des dictionnaires. Ils sont mutables mais à la différence des dictionnaires les sets ne stockent que des clés mais pas de valeurs.
Le set a été créé et optimisé pour des opérations spécifiques.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/core/types_numeriques?rev=1701508457&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-02T09:14:17+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:core:types_numeriques</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/core/types_numeriques?rev=1701508457&amp;do=diff</link>
        <description>dev python types

Python: Types numériques

Les types numériques en python comprennent:

	*  Nombres entiers type int de précision illimité
	*  Les décimaux type float
	*  Les nombres complexes
	*  Les booléens type bool

Usages simples

Priorités

:TODO_DOCUPDATE:</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/jupyter-notebook/start?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:jupyter-notebook:start</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/jupyter-notebook/start?rev=1612216289&amp;do=diff</link>
        <description>dev python jupyter

Jupyter notebook

Le nom Jupyter vient de la contraction des 3 principaux langages utilisés dans le domaine de la data science: Julia, Python et R. L&#039;extension d&#039;un fichier notebook produit par Jupyter est .pynb pour IPython NoteBook, ancien nom du projet Jupyter.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/pygtk/start?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:pygtk:start</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/pygtk/start?rev=1612216289&amp;do=diff</link>
        <description>du boot, pc rendu a Nathalie Barret. Pas de retour utilisateur. Fermeture ticket.

dev python ihm pygtk

IHM pour python avec PyGTK

Présentation générale de la conception d&#039;une application Python utilisant une IHM GTK

	*  Les classes Python modélisent les données métier et intègrent les traitements.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask-sqlalchemy/activer-contraintes-fk-sqlite-avec-flask-sqlachemy?rev=1756631453&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-08-31T09:10:53+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:flask:flask-sqlalchemy:activer-contraintes-fk-sqlite-avec-flask-sqlachemy</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask-sqlalchemy/activer-contraintes-fk-sqlite-avec-flask-sqlachemy?rev=1756631453&amp;do=diff</link>
        <description>dev python web flask sqlalchemy flas-sqlachemy

Flask-SQLAlchemy : Forcer la vérification des contraintes sur une base SQLite3

Notes concernant l&#039;activation des contraintes sur clé étrangère (FK) sur les bases de type SQLite3 utilisées en backend via Flask-SQLAlchemy.

Problématique

Une contrainte de type</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask-sqlalchemy/relation_agregation?rev=1753198299&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-07-22T15:31:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:flask:flask-sqlalchemy:relation_agregation</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask-sqlalchemy/relation_agregation?rev=1753198299&amp;do=diff</link>
        <description>dev python sql sqlalchemy relation

Flask-SQLAlchemy : Définir une relation d&#039;agrégation

La relation d&#039;agrégation est une forme particulière de relation one-to-many. C&#039;est une composition sans appartenance : la suppression d&#039;une instance de la classe regroupant les agrégats n&#039;entraine pas la suppression des agrégats.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/pygtk/widgets/start?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:pygtk:widgets:start</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/pygtk/widgets/start?rev=1612216289&amp;do=diff</link>
        <description>pygtk widget

Widgets

Présentation sommaire de widgets usuels.

Button

Il existe plusieurs types de boutons. Un bouton basique a un simple label définit lors de l&#039;instanciation ou via l&#039;appel de la méthode set_label(). 


bouton1= gtk.Button(&quot;Valider&quot;)
box.pack_end(bouton1, expand=False)
bouton1.show()</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/bonnes-pratiques?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:bonnes-pratiques</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/bonnes-pratiques?rev=1612216289&amp;do=diff</link>
        <description>Bonnes pratiques

Recommandations d&#039;ordre général à mettre en œuvre pour tout développement:

	*  Essayer de produire un code clair, privilégier la clarté à trop de concision.
	*  Commenter
	*  Lors de toute modification factoriser et supprimer le code inutile.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/expression-rationnelle?rev=1728748968&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-12T16:02:48+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:expression-rationnelle</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/expression-rationnelle?rev=1728748968&amp;do=diff</link>
        <description>dev regex

Expression rationnelle

Les expressions rationnelles ou  expressions régulières (de l&#039;anglais regex) sont particulièrement efficaces et utiles pour les traitements automatiques de flux ou de fichiers textes (recherches, subtitutions). Elles ont été mises en œuvres dans de nombreux langages, une norme POSIX existe.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/programmation-evenementielle?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:programmation-evenementielle</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/programmation-evenementielle?rev=1612216289&amp;do=diff</link>
        <description>dev conception callback

Programmation événementielle

Dans un paradigme (ou modèle) événementiel, le programme principal est à l&#039;écoute des événements (ou signaux). Lorsque ceux-ci se produisent il se charge d&#039;appeler les fonctions de post-traitement associées ou fonction de rappel (callback). Cela permet de produire un code modulaire. La programmation événementielle est utilisée notamment par les interfaces graphiques.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/arduino/bonnes-pratiques?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:arduino:bonnes-pratiques</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/arduino/bonnes-pratiques?rev=1612216289&amp;do=diff</link>
        <description>hardware electronique arduino

Bonnes pratiques

Avant de commencer un projet/un montage téléverser un programme vide pour s&#039;assurer que la carte n’exécutera pas un programme non prévu (préexistant et non adapté au montage) lors de la mise sous tension.

Références

	*  Atelier arduino Artilect 19/09/2018</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/arduino/nouveau-projet-eclipse?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:arduino:nouveau-projet-eclipse</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/arduino/nouveau-projet-eclipse?rev=1612216289&amp;do=diff</link>
        <description>Nouveau projet Arduino

Création d&#039;un nouveau projet Arduino sous l&#039;IDE Eclipse.

	*  Menu File -&gt; new -&gt; C++ Project
	*  Dans la section Project Type Sélectionner AVR Cross Target Application et Empty. Nommer le projet. Ici nous l&#039;appelons helloWorld.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/arduino/port-serie?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:arduino:port-serie</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/arduino/port-serie?rev=1612216289&amp;do=diff</link>
        <description>dev arduino serie

Port série avec Arduino

Liaison série asynchrone, utilise les broches 0 pour la réception (Rx) et 1 pour la transmission (Tx). Si le port série est utilisé dans le programme, les broches 0 et 1 ne seront plus disponible en tant qu&#039;entrées/sorties numériques du port parallèle.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/arm/distribution-linux-minimale?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:arm:distribution-linux-minimale</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/arm/distribution-linux-minimale?rev=1612216289&amp;do=diff</link>
        <description>Construction d&#039;une distribution Linux minimale

Nous cherchons ici a construire une distribution GNU/Linux minimale pour une platerforme ARM9 (Versatile). Ce type de plateforme est bien connue, cela nous permettra de l&#039;émuler facilement.

Une distribution GNU/Linux minimale s&#039;articule autour:</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/bash/convertir_colonne_en_ligne?rev=1622208888&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-05-28T13:34:48+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:bash:convertir_colonne_en_ligne</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/bash/convertir_colonne_en_ligne?rev=1622208888&amp;do=diff</link>
        <description>dev bash convertion column colonne row

Bash: convertir une colonne en ligne

On cherche à reformater des données présentées d&#039;une colonne vers une ligne.

echo

La commande echo lorsqu&#039;elle reçoit en argument une chaîne de caractères contenant des LF ne les interprète pas, elle peut donc être utilisée pour convertir des données présentées en colonne:</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/bash/debogage?rev=1669211307&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-11-23T13:48:27+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:bash:debogage</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/bash/debogage?rev=1669211307&amp;do=diff</link>
        <description>dev shell bash debug

Débogage de scripts shell

Avant toute exécution, on peut vouloir valider la syntaxe d&#039;un fichier de script. Pour cela on peut invoquer un shell avec l&#039;option -n (noexec) et le scrit à vérifier en paramètre:


bash -n monscript.sh


Le shell Bash peut être invoqué avec l&#039;option</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/bash/generer_nombre_aleatoire?rev=1619346491&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-04-25T10:28:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:bash:generer_nombre_aleatoire</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/bash/generer_nombre_aleatoire?rev=1619346491&amp;do=diff</link>
        <description>dev bash shell

Bash: Générer un nombre aléatoire

Pour obtenir un nombre aléatoire dans l&#039;intervalle [0-32767] depuis le shell, on peut utiliser la variable $RANDOM.

Pour limiter la valeur maximum de l&#039;intervalle entre [0-N] avec N &lt; 32767, on peut utiliser l&#039;opérateur modulo. Lorsqu&#039;on divise un nombre par N, le reste de la division est toujours compris entre [0-(N-1)]. Le reste est disponible via l&#039;opérateur modulo.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/c-cpp/principaux-usages-gcc?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:c-cpp:principaux-usages-gcc</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/c-cpp/principaux-usages-gcc?rev=1612216289&amp;do=diff</link>
        <description>gcc c compilation gnu

Principales options et usages GCC
 -g          Insertion des symboles de débogages lors de la compilation des fichiers objets *.o  -Wall       Active l&#039;affichage de la plupart des avertissements à la compilation.               -pg         Permet le profilage du code via gprof</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/git/annuler-modifs-non-commit?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:git:annuler-modifs-non-commit</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/git/annuler-modifs-non-commit?rev=1612216289&amp;do=diff</link>
        <description>dev git annuler

Annuler des modifications/Nettoyer le working directory

Lorsque l&#039;on souhaite abandonner de nombreuses modifications faites sur le répertoire de travail et revenir dans l&#039;état exact du dernier commit, on procède en deux étapes:

	*  Primo on replace l&#039;index et les fichiers suivis du répertoire de travail dans l&#039;état du dernier commit:</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/git/generer-archive?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:git:generer-archive</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/git/generer-archive?rev=1612216289&amp;do=diff</link>
        <description>dev git archive zip tgz

Générer une archive avec Git

Git est en mesure de générer des archives dans différents formats. Pour lister les formats disponibles:


$ git archive --list


Ceci permet de distribuer simplement le projet dans une révision particulière, par exemple celle marquée du tag</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/git/modifier-commit?rev=1643150858&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-01-25T22:47:38+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:git:modifier-commit</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/git/modifier-commit?rev=1643150858&amp;do=diff</link>
        <description>dev git

Modifier un commit

Modifications sur le dernier commit

Un cas fréquent: Le commit a été fait mais on se rend compte rapidement qu&#039;il manque un ou plusieurs fichiers ou que la description du commit comporte des erreurs. Il suffit de placer les fichiers dans la zone d&#039;index ou de mettre à jour l&#039;index comme désiré et d&#039;entrer la commande</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/git/workflow?rev=1695300487&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-21T12:48:07+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:git:workflow</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/git/workflow?rev=1695300487&amp;do=diff</link>
        <description>dev git worflow

:TODO_DOCUPDATE:

Workflow avec git

Création du dépôt nu

Créer un dépôt nu sur le serveur, le dossier mon-projet.git conteneur du projet sera créé automatiquement après validation de la commande suivante:


$ git init --bare mon-projet.git</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/outils/crosstool?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:outils:crosstool</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/outils/crosstool?rev=1612216289&amp;do=diff</link>
        <description>Crosstool

Crosstool est un outil libre écrit par Dan Kegel et placé sous licence GPLv2. Il regroupe un ensemble de scripts permettant de construire une chaine de compilation croisée. Plus complexe à prendre en main qu&#039;une chaine fournie sous forme de binaire telle que ELDK, crosstool apporte cependant plus de souplesse en s&#039;adaptant aux cibles les plus spécifiques, en permettant au developpeur de choisir les versions du compilateur, des bibliothèques et du noyau avec lesquels la chaine sera con…</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/outils/qemu?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:outils:qemu</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/outils/qemu?rev=1612216289&amp;do=diff</link>
        <description>Qemu

Quick EMUlator est un logiciel sous licence libre GPL écrit par Fabrice Bellard. C&#039;est un émulateur de plateformes matérielles. Le matériel peut être spécifique et coûteux, l&#039;émulation est alors intéressante lors des phases d&#039;apprentissage, de recherche ou de prototypage. Elle facilite également le travail collaboratif: les développeurs peuvent participer au projet sans possèder la plateforme cible.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/powershell/ecrire_un_module_powershell?rev=1693139123&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-08-27T12:25:23+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:powershell:ecrire_un_module_powershell</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/powershell/ecrire_un_module_powershell?rev=1693139123&amp;do=diff</link>
        <description>dev powershell module

Powershell : Créer un module

Le fichier Manifest

Le fichier manifeste de module est un fichier de données PowerShell avec l&#039;extension .psd1. Il contient une simple table de hachage. Les paires clé-valeur dans la table de hachage permettent de :</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/powershell/lecture_entrees_utilisateur?rev=1688056302&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-06-29T16:31:42+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:powershell:lecture_entrees_utilisateur</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/powershell/lecture_entrees_utilisateur?rev=1688056302&amp;do=diff</link>
        <description>dev powershell

PowerShell : Lecture des entrées utilisateur

La cmdlet Read-Host récupère la saisie utilisateur et alimente la variable :


$user_answer = Read-Host &quot;Saisir le nombre max&quot;


On peut passer un message à Read-Host, il sera afficher lors de l&#039;exécution. La commande termine systématiquement le message par &#039;:&#039;, si on souhaite éviter ce comportement par défaut on affiche d&#039;abord le message souhaité puis on invoque Read-Host sans message :</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/powershell/structures_de_controle?rev=1687522079&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-06-23T12:07:59+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:powershell:structures_de_controle</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/powershell/structures_de_controle?rev=1687522079&amp;do=diff</link>
        <description>dev powershell

PowerShell : Les structures de contrôle

Les boucles

ForEach

La boucle ForEach permet de traiter chaque éléments d&#039;un tableau ou plus généralement d&#039;un objet itérable :


ForEach ($user in $users) {
     Set-ADUser $user -Department &quot;Marketing&quot;
}</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/annotations?rev=1672674892&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-01-02T15:54:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:annotations</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/annotations?rev=1672674892&amp;do=diff</link>
        <description>dev python

Python: Annotations de type

Les annotations de type (type hinting) fournissent des méta-informations sur le type d&#039;un paramètre dans la définition d&#039;une fonction ou d&#039;une méthode en Python.

	*  L&#039;annotation est optionnelle
	*  L&#039;annotation doit être une expression Python valide. Elle est évaluée une seule fois au chargement du module, le résultat est accessible via l&#039;attribut</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/bonnes-pratiques?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:bonnes-pratiques</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/bonnes-pratiques?rev=1612216289&amp;do=diff</link>
        <description>Bonnes pratiques

Duck typing

La l&#039;oie du canard: If it looks like a duck and quacks like a duck, it must be a duck.

Dans la majorité des cas il importe peu que l&#039;objet soit une instance d&#039;un type particulier, on cherche à savoir s&#039;il a le bon comportement. On privilégiera donc l&#039;emploie de</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/debogage?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:debogage</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/debogage?rev=1612216289&amp;do=diff</link>
        <description>dev python debug debogage

Outils de débogage avec python

Outils d&#039;analyse statique

Analysent le script/module et détectent les anomalies

	*  pylint
	*  pychecker
	*  pyflakes
	*  pep8
	*  flake8
	*  mypy: outil standard d&#039;analyse statique du typage

pyflakes

pyflakes est un outil simple capable de détecter les erreurs de syntaxe, les fautes de frappe notamment dans les noms de variables, les imports manquants ou inutilisés. Il peut être intégré à l&#039;EDI notamment à Vim :)</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/entetes_de_scripts?rev=1701194606&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-28T18:03:26+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:entetes_de_scripts</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/entetes_de_scripts?rev=1701194606&amp;do=diff</link>
        <description>dev python headers entetes

:TODO_DOCUPDATE:

Python : utilisation d&#039;entêtes

Des entêtes (headers) peuvent être utilisées sur certains scripts notamment pour :

	*  Aider le système d&#039;exploitation à correctement démarrer l&#039;exécution d&#039;un script ;
	*  Déterminer le jeu de caractères utilisé pour écrire le script afin de l&#039;interpréter correctement.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/operateur-etoile?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:operateur-etoile</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/operateur-etoile?rev=1612216289&amp;do=diff</link>
        <description>dev python splat etoile

Opérateur étoile avec Python

Unpacking des paramètres effectifs

Lorsque l&#039;opérateur est placé devant un argument effectif sur un appel de fonction, chaque valeur de la variable est passé à un paramètre différent de la fonction. Il doit y avoir correspondance entre le nombre d&#039;éléments de la variables et le nombre de paramètres de la fonction:</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/pip?rev=1638106066&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-11-28T13:27:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:pip</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/pip?rev=1638106066&amp;do=diff</link>
        <description>dev python pip

pip

pip est un outil de gestion des bibliothèques externes Python. Il permet:

	*  Installer les bibliothèques et les dépendances.
	*  Mettre à jour/downgrader les versions.
	*  Facilite le déploiement d&#039;une application en générant un listing des bibliothèques utilisées et leurs versions</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/snmp?rev=1641573614&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-01-07T16:40:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:snmp</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/snmp?rev=1641573614&amp;do=diff</link>
        <description>dev python snmp get

Python : Interroger un agent SNMP

PySNMP est un module open-source Python prenant en charge toutes les versions du protocole SNMP et permettant d&#039;agir autant comme manager que comme agent.

Installation

Méthode standard, depuis l&#039;environnement virtuel on utilise pip:</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/sqlalchemy?rev=1733182283&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-12-02T23:31:23+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:sqlalchemy</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/sqlalchemy?rev=1733182283&amp;do=diff</link>
        <description>:TODO_DOCUPDATE:

SQLAlchemy

L&#039; ORM est une technique employée par les langages orientés objets permettant de convertir des données entre systèmes ayant des types de données incompatibles.

Les langages orientés objets tels que Python permettent de définir des types non-scalaires qui ne peuvent pas être exprimés directement en types primitifs tels que des entiers ou des chaînes de caractères. Par exemple un objet de type</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/venv_script_activate_absent?rev=1728923557&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-14T16:32:37+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:venv_script_activate_absent</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/venv_script_activate_absent?rev=1728923557&amp;do=diff</link>
        <description>dev python ubuntu venv activate depannage troubleshooting

Python3 : Script activate absent

Le dossier racine de l&#039;environnement est créé mais le script ./env/bin/activate est absent.
Lors de la création de l&#039;environnement un message est affiché :


The virtual environment was not created successfully because ensurepip is not
available.  On Debian/Ubuntu systems, you need to install the python3-venv
package using the following command.

    apt install python3.12-venv

You may need to use sudo …</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/raspberry/linux-from-scratch?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:raspberry:linux-from-scratch</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/raspberry/linux-from-scratch?rev=1612216289&amp;do=diff</link>
        <description>LFS (Linux From Scratch) pour Raspberry Pi

On cherche à générer un système GNU/Linux complet pour une Raspberry Pi à partir des fichiers sources seulement. Les bénéfices sont multiples:

	*  Comprendre les étapes de la compilation.
	*  Mieux connaitre l&#039;architecture des systèmes GNU/Linux.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/rust/installer_rust?rev=1726834538&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-09-20T12:15:38+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:rust:installer_rust</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/rust/installer_rust?rev=1726834538&amp;do=diff</link>
        <description>dev rust installation

Installer Rust

Installation sous Debian like

Rust s&#039;installe en espace utilisateur, la solution recommandée consiste à exécuter le script disponible en ligne.

Pour une machine sous GNU/Linux :


curl --proto &#039;=https&#039; --tlsv1.2 -sSf https://sh.rustup.rs | sh</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/web/chameleon?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:web:chameleon</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/web/chameleon?rev=1612216289&amp;do=diff</link>
        <description>web python template chameleon pyramid

Moteur de template Chameleon

Chameleon est un moteur de template Python. Il permet de générer des documents textes formatés par des balises(XML/HTML) à partir de modèles (les templates). Chameleon accepte en entrée des documents XML/HTML bien formés (le modèle ou template) et via un système d&#039;attributs (les déclarations ou statements) il génère un fichier texte XML qui n&#039;est pas nécessairement bien formé.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/android/android-studio/anatomie-projet?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:android:android-studio:anatomie-projet</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/android/android-studio/anatomie-projet?rev=1612216289&amp;do=diff</link>
        <description>dev android

Principaux éléments d&#039;un projet Android

Dans la vue Android, quand on déploie Application:

	*  Le fichier manifest/AndroidManifest.xml fixe les principales caractéristiques de l&#039; application Android notamment ses différentes activités, l&#039;activité initiale, les périphériques/ressources nécessaires: ex réseau, carte SD etc.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/android/android-studio/erreur-mise-a-jour?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:android:android-studio:erreur-mise-a-jour</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/android/android-studio/erreur-mise-a-jour?rev=1612216289&amp;do=diff</link>
        <description>dev erreur android androidstudio update

Erreur à la mise à jour d&#039;Android Studio

Lors de toute tentative de mise à jour de l&#039;IDE Android Studio, la console affiche un message:


Connection Error
Failed to prepare an update:
Temp directory inside installation: /opt/android-studio/data/yoann/AndroidStudio/system/tmp/patch-update
Open download page.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/arduino/the-bomb/start?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:arduino:the-bomb:start</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/arduino/the-bomb/start?rev=1612216289&amp;do=diff</link>
        <description>Projet The Bomb!

Le projet The Bomb est un jeu. Le but est simple: désamorcer une fausse bombe avant que le compte à rebours ne soit écoulé. Ce petit projet de jeu est un prétexte comme un autre pour découvrir la plateforme Arduino.

Description</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/esp/esp32/micropython?rev=1617526396&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-04-04T08:53:16+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:esp:esp32:micropython</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/esp/esp32/micropython?rev=1617526396&amp;do=diff</link>
        <description>dev esp32 micropython todo

ESP32: Micropython

MicroPython est une implémentation légère et compacte de l&#039; interpréteur Python 3. Il inclus un petit sous ensemble de la bibliothèque standard Python et est optimisé pour s&#039;exécuter sur microcontrôleur ( tel qu&#039;un ESP32) ou en environnement contraint (en ressources matérielles). Le cœur Micropython utilise 256Ko d&#039;espace en flash et 16 Ko de RAM.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/esp/esp8266/connexion-a-un-reseau-wifi?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:esp:esp8266:connexion-a-un-reseau-wifi</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/esp/esp8266/connexion-a-un-reseau-wifi?rev=1612216289&amp;do=diff</link>
        <description>dev esp8266 todo

Connexion au réseau wifi

Dans l&#039;exemple ci dessous, l&#039;ESP se connecte au réseau et écrit sur le port série


#include &lt;ESP8266WiFi.h&gt;


void setup()
{
  //Initialisation du port série
  Serial.begin(115200);
  Serial.println();

  //Connexion de l&#039;ESP au réseau 
  WiFi.begin(&quot;SSID&quot;, &quot;MonMotDePasse&quot;);

  Serial.print(&quot;Connecting&quot;);
  while (WiFi.status() != WL_CONNECTED)
  {
    delay(500);
    Serial.print(&quot;.&quot;);
  }
  Serial.println();

  //la fonction printDiag permet d&#039;obten…</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/git/cas-pratiques/annuler-dernier-commit?rev=1635764331&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-11-01T10:58:51+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:git:cas-pratiques:annuler-dernier-commit</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/git/cas-pratiques/annuler-dernier-commit?rev=1635764331&amp;do=diff</link>
        <description>git dev annuler commit

Annuler le dernier commit
git revert

Le cas peut se présenter lorsque on se rend compte que le commit a été fait sur la mauvaise branche. On souhaite l&#039;annuler. Si le commit n&#039;a pas été propagé, il peut être annulé sans problème via la commande:</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/go/tutoriels/demarrer_en_go?rev=1690984059&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-08-02T13:47:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:go:tutoriels:demarrer_en_go</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/go/tutoriels/demarrer_en_go?rev=1690984059&amp;do=diff</link>
        <description>dev go tutoriel

Tutoriel : Introduction au langage Go

Ce tutoriel est une introduction rapide au langage Go. On y aborde :

	*  L&#039;installation de Go ;
	*  La création d&#039;un programme simple de type “Hello World” ;
	*  L&#039;utilisation de la commande go pour exécuter le code ;</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/iot/esp8266/communication_serie_via_minicom?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:iot:esp8266:communication_serie_via_minicom</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/iot/esp8266/communication_serie_via_minicom?rev=1612216289&amp;do=diff</link>
        <description>dev iot esp8266 serie minicom

Devkit v3 ESP8266: Communication série avec minicom

Identifier dans un premier temps le fichier périphérique auquel est associée la carte de développement (DevKit) lorsqu&#039;elle est connectée à l’hôte. Pour cela, brancher le DevKit ESP8266 sur le port USB et consulter les journaux système:</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/iot/esptools/start?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:iot:esptools:start</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/iot/esptools/start?rev=1612216289&amp;do=diff</link>
        <description>dev esp esptool firmware flash iot

esptool: Flasher le firmware sur ESP

esptool est l&#039;outil en ligne de commande développé par Espressif permettant de flasher le firmware de son choix sur les microcontrôleurs de la gamme ESP:

	*  ESP8266
	*  ESP32

Installation

La version stable est disponible sur le gestionnaire de packetage Python pip. Créer un environnement virtuel Python:</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/php/erreurs/deprecated-constructor?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:php:erreurs:deprecated-constructor</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/php/erreurs/deprecated-constructor?rev=1612216289&amp;do=diff</link>
        <description>dev php php7 debug

php7: Notification &quot;has deprecated constructor&quot;

Lors de l&#039;execution de certains scripts, suivant la verbosité des logs, le message suivant peut remonter dans les logs ou être affiché selon la configuration des logs d&#039;erreurs:


PHP Deprecated:  Methods with the same name as their class will not be constructors in a future version of PHP; MyObject has a deprecated constructor in /path/to/script/MyObject.php on line 3</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/php/erreurs/undefined-function-dl?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:php:erreurs:undefined-function-dl</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/php/erreurs/undefined-function-dl?rev=1612216289&amp;do=diff</link>
        <description>dev php php7 erreur debug todo

Php7: Fonction dl() indéfinie

Cette erreur a été rencontrée lors de la migration d&#039;une application web fonctionnant normalement sous Apache/ PHP5 vers une version plus récente Apache/PHP7

Le message d&#039;erreur obtenu:


Fatal error: Uncaught Error: Call to undefined function dl() in /srv/opencourrier/web/php/pear/DB.php:710</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/core/installer_interpreteurs?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:core:installer_interpreteurs</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/core/installer_interpreteurs?rev=1612216289&amp;do=diff</link>
        <description>dev python

Python: Installer différents interpréteurs

Depuis la version 3.3 de Python le module venv permet de construire un environnement virtuel. Cependant chaque version de l&#039;interpreteur construit 

L&#039; interpréteur de la distribution

Le gestionnaire de paquets de la distribution permet d&#039;installer un interpréteur près-compilé. Il est possible d&#039;afficher le détail des options de configuration utilisées lors de la compilation depuis l&#039;interpréteur:</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/core/type_chaines_de_caracteres?rev=1701508391&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-02T09:13:11+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:core:type_chaines_de_caracteres</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/core/type_chaines_de_caracteres?rev=1701508391&amp;do=diff</link>
        <description>dev python caracteres

:TODO_DOCUPDATE:

Python: Les chaînes de caractères

En python caractère et chaîne de caractères sont des objets de type str. Les chaînes de caractères sont des objets immuables: une fois crées elles ne peuvent plus être modifiées. Les méthodes permettant d&#039;altérer les chaînes retournent donc un nouvel objet str.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/core/variables_environnement?rev=1753023789&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-07-20T15:03:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:core:variables_environnement</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/core/variables_environnement?rev=1753023789&amp;do=diff</link>
        <description>dev python variable environnement

Python : Gestion des variables d&#039;environnement

Plusieurs solutions pour définir des variables d&#039;environnement en Python :

	*  Créer un fichier .env ;
	*  Éditer le fichier activate de l&#039;environnement virtuel Python ;
	*  Utiliser le Dockerfile si le projet s&#039;appuie sur Docker.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/flask/architecture_projet_flask?rev=1775376548&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-04-05T08:09:08+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:flask:architecture_projet_flask</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/flask/architecture_projet_flask?rev=1775376548&amp;do=diff</link>
        <description>dev python flask web api

Flask

:TODO_DOCUPDATE:

Flask n&#039;impose aucune arborescence, selon les besoins on peut opter pour une application monolithique ou modulaire.

Application monolithique

Pour les petit projets, les tests ou les tutoriaux, on utilise généralement un simple module Python qui se charge d&#039; instancier directement l&#039;objet Flask. Cette approche monolithique permet de coder rapidement une preuve de concept (PoC), un prototype par exemple.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/flask/definir_commande_cli?rev=1775393751&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-04-05T12:55:51+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:flask:definir_commande_cli</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/flask/definir_commande_cli?rev=1775393751&amp;do=diff</link>
        <description>dev python flask cli commande

Flask : Définir une commande CLI

Le framework Flask s&#039;appuie sur le paquetage Python Click pour la gestion de la ligne de commande.

On utilise les décorateurs pour déclarer une commande. Ci-dessous un exemple simple de commande sans argument :


from flask import Flask

app = Flask(__name__)

@app.cli.command(&quot;version&quot;)
def version():
  &quot;&quot;&quot;Show application version.&quot;&quot;&quot; 
  print(&quot;0.0.1&quot;)</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask_application_factory?rev=1753528543&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-07-26T11:15:43+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:flask:flask_application_factory</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask_application_factory?rev=1753528543&amp;do=diff</link>
        <description>dev python web flask

Flask : Usage de la fonction create_app

La création de l&#039;application Flask peut se faire de plusieurs manières. L&#039;utilisation de l&#039;application factory est l&#039;approche recommandée pour les projets qui gagent en envergure. Elle permet de concevoir une application plus facilement extensible et maintenable.</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask_sqlalchemy?rev=1756406120&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-08-28T18:35:20+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:flask:flask_sqlalchemy</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask_sqlalchemy?rev=1756406120&amp;do=diff</link>
        <description>dev python orm flask sqlachemy

:TODO_DOCUPDATE:

L&#039;extension Flask-SQLAlchemy

A propos de SQLAlchemy

SQLAlchemy est un ORM (Object-Relational Mapping) il permet de traduire les objets Python en données pouvant être enregistrées dans un SGBD externe. 

Installation

Pour pouvoir utiliser l&#039;extension, installer le module</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/flask/templates?rev=1775801399&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-04-10T06:09:59+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:flask:templates</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/flask/templates?rev=1775801399&amp;do=diff</link>
        <description>dev python flask templates jinja2

Flask : Utilisation des templates

Généralités

Grossièrement, le template est une page web à trous. Il contient des sections invariantes en HTML/javascript directement interprétables par le navigateur web et des sections dynamiques ou non remplies désignées</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/jupyter-notebook/installation_jupyter_via_docker?rev=1630235390&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-08-29T11:09:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:jupyter-notebook:installation_jupyter_via_docker</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/jupyter-notebook/installation_jupyter_via_docker?rev=1630235390&amp;do=diff</link>
        <description>software python jupyter jupyterlab notebook install docker todo

Installer Jupyter via Docker

Il existe plusieurs images, la version scipy-notebook inclus des packages populaires de l&#039;écosystème scientifique Python:


docker pull jupyter/scipy-notebook:python-3.9.6
docker run --rm -p 10000:8888 -e JUPYTER_ENABLE_LAB=yes -v &quot;${PWD}&quot;:/home/jovyan/work jupyter/scipy-notebook:python-3.9.6</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/frameworks/pyramid/tutoriaux/fichiers-statiques?rev=1612216289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-01T21:51:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:frameworks:pyramid:tutoriaux:fichiers-statiques</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/frameworks/pyramid/tutoriaux/fichiers-statiques?rev=1612216289&amp;do=diff</link>
        <description>dev web framework pyramid static

Servir des fichiers statiques avec Pyramid

Voir le tutoriel hello World pour mettre en place le projet initial. Pour servir des fichiers statiques, lors de la configuration de l&#039;application, utiliser la méthode



# conf est une instance de pyramid.conf.Configurator
conf.add_static_view(name=&#039;static&#039;, path=&#039;static&#039;)</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/flask/exemples/redirections?rev=1775538587&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-04-07T05:09:47+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:flask:exemples:redirections</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/flask/exemples/redirections?rev=1775538587&amp;do=diff</link>
        <description>dev python flask redirection

Flask : redirections

Le framework Flask propose la fonction redirect(). Pour les redirections internes, on l&#039;utilise conjointement à la fonction url_for() :


from flask import Flask, redirect, url_for

app = Flask(__name__)

@app.route(&#039;/&#039;)
def home():
    return &#039;Welcome to Home Page&#039;

# Redirection externe
@app.route(&#039;/goto/sponsor/example_dot_com&#039;)
def external_redirect():
    return redirect(&#039;https://www.example.com&#039;)

# Redirection interne
@app.route(&#039;/test-p…</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/flask/extensions/flask_maintenance?rev=1758366183&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-09-20T11:03:03+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:flask:extensions:flask_maintenance</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/flask/extensions/flask_maintenance?rev=1758366183&amp;do=diff</link>
        <description>dev python framework flask extension

:TODO_DOCUPDATE:

Flask: extension Flask-Maintenance

L&#039;extensions Flask-Maintenance permet de bloquer temporairement les requêtes entrantes (frontend).

Pour illustrer son fonctionnement, on utilise ici une application Flask monolithique minimale. Depuis votre environnement virtuel Python :</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask-sqlalchemy/relation_composition?rev=1754250594&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-08-03T19:49:54+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:flask:flask-sqlalchemy:relation_composition</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask-sqlalchemy/relation_composition?rev=1754250594&amp;do=diff</link>
        <description>dev python sql sqlalchemy relation

:TODO_DOCUPDATE:

Flask-SQLAlchemy : relation de composition

La relation de composition est une forme particulière de relation one-to-many. Le diagramme UML la représente comme ci-dessous :



	*  Une voiture (le composite) peut contenir un ou plusieurs sièges (les composants);</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask-sqlalchemy/relation_many-to-many?rev=1754432187&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-08-05T22:16:27+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:flask:flask-sqlalchemy:relation_many-to-many</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask-sqlalchemy/relation_many-to-many?rev=1754432187&amp;do=diff</link>
        <description>dev python flask orm db sqlalchemy

Flask-SQLAlchemy : Mise en œuvre d&#039;une relation many-to-many

:TODO:

Suppression des enregistrements orphelins dans une association many-to-many

Un cas typique est la gestion des étiquettes (tags) ou des mots-clés (keywords).

Dans cet exemple on souhaite pouvoir associer des mots-clés à des jeux :</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask-sqlalchemy/relation_one-to-many?rev=1754217789&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-08-03T10:43:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:flask:flask-sqlalchemy:relation_one-to-many</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/flask/flask-sqlalchemy/relation_one-to-many?rev=1754217789&amp;do=diff</link>
        <description>dev python flask orm db sqlalchemy

:TODO_DOCUPDATE:

Flask-SQLAlchemy : relation one-to-many

Quelques notes à propos de l&#039;implémentation d&#039;une relation un à plusieurs (one to many) avec l&#039;extension Flask-SQLAlchemy.

Pour illustrer le concept on prend un exemple rudimentaire :


MCD via diagramme UML</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/flask/tutoriel/webstore?rev=1733180890&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-12-02T23:08:10+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:flask:tutoriel:webstore</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/flask/tutoriel/webstore?rev=1733180890&amp;do=diff</link>
        <description>dev python flask sqlalchemy tutoriel

Exemple d&#039;Application web avec Flask et le module flask_sqlalchemy

On crée une petite application web “webstore” qui stocke des articles dans différents magasins

Initialisation du projet, création d&#039;un dépôt et d&#039;un environnement virtuel


cd ~/dev
git init webstore

cd ~/dev/webstore
python3 -m venv .venv</description>
    </item>
    <item rdf:about="https://wiki.phobos-net.fr/doku.php/dev/python/flask/extensions/flask-sqlalchemy/afficher-les-requetes?rev=1756406120&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-08-28T18:35:20+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:python:flask:extensions:flask-sqlalchemy:afficher-les-requetes</title>
        <link>https://wiki.phobos-net.fr/doku.php/dev/python/flask/extensions/flask-sqlalchemy/afficher-les-requetes?rev=1756406120&amp;do=diff</link>
        <description>dev python sql sqlalchemy

Afficher les requêtes produites par l&#039;ORM SQLAlchemy

La variable de configuration SQLALCHEMY_ECHO

Lorsqu&#039;on utilise l&#039;extension Flask-SQLAlchemy, on peut afficher un retour des requêtes produites par l&#039;ORM sur la console en utilisant la variable de configuration</description>
    </item>
</rdf:RDF>
