La bibliothèque standard
************************

Alors que La référence du langage Python décrit exactement la syntaxe
et la sémantique du langage Python, ce manuel de référence de la
Bibliothèque décrit la bibliothèque standard distribuée avec Python.
Il décrit aussi certains composants optionnels typiquement inclus dans
les distributions de Python.

La bibliothèque standard de Python est très grande, elle offre un
large éventail d'outils comme le montre la longueur de la table des
matières ci-dessous. La bibliothèque contient des modules natifs
(écrits en C) exposant les fonctionnalités du système telles que les
interactions avec les fichiers qui autrement ne seraient pas
accessibles aux développeurs Python, ainsi que des modules écrits en
Python exposant des solutions standardisées à de nombreux problèmes du
quotidien du développeur. Certains de ces modules sont définis
explicitement pour encourager et améliorer la portabilité des
programmes Python en abstrayant des spécificités sous-jacentes en API
neutres.

Les installateurs de Python pour Windows incluent généralement la
bibliothèque standard en entier, et y ajoutent souvent d'autres
composants. Pour les systèmes d'exploitation Unix, Python est
typiquement fourni sous forme d'une collection de paquets, il peut
donc être nécessaire d'utiliser le gestionnaire de paquets fourni par
le système d'exploitation pour obtenir certains composants optionnels.

Au delà de la bibliothèque standard, il existe une collection
grandissante de plusieurs centaine de milliers de composants (des
programmes, des modules, ou des *frameworks*), disponibles dans le
Python Package Index.

* Introduction

  * Notes sur la disponibilité

* Fonctions natives

* Constantes natives

  * Constantes ajoutées par le module "site"

* Types natifs

  * Valeurs booléennes

  * Opérations booléennes — "and", "or", "not"

  * Comparaisons

  * Types numériques — "int", "float", "complex"

  * Les types itérateurs

  * Types séquentiels — "list", "tuple", "range"

  * Type Séquence de Texte — "str"

  * Séquences Binaires — "bytes", "bytearray", "vue mémoire"

  * Types d'ensembles — "set", "frozenset"

  * Les types de correspondances — "dict"

  * Le type gestionnaire de contexte

  * Types d'annotation de type — *Alias générique*, *Union*

  * Autres types natifs

  * Attributs spéciaux

  * Limitation de longueur de conversion de chaîne vers un entier

* Exceptions natives

  * Contexte des exceptions

  * Hériter des exceptions natives

  * Classes mères

  * Exceptions concrètes

  * Avertissements

  * Exception groups

  * Hiérarchie des exceptions

* Services de Manipulation de Texte

  * "string" — Opérations usuelles sur des chaînes

  * "re" — Opérations à base d'expressions rationnelles

  * "difflib" — Utilitaires pour le calcul des deltas

  * "textwrap" --- Encapsulation et remplissage de texte

  * "unicodedata" — Base de données Unicode

  * "stringprep" — Préparation des chaines de caractères internet

  * "readline" — interface pour GNU *readline*

  * "rlcompleter" — Fonction de complétion pour *GNU readline*

* Services autour des Données Binaires

  * "struct" — manipulation de données agrégées sous forme binaire
    comme une séquence d'octets

  * "codecs" — Registre des codecs et classes de base associées

* Types de données

  * "datetime" — Types de base pour la date et l'heure

  * "zoneinfo" — Prise en charge des fuseaux horaires IANA

  * "calendar" — Fonctions calendaires générales

  * "collections" — Types de données de conteneurs

  * "collections.abc" --- Classes de base abstraites pour les
    conteneurs

  * "heapq" — File de priorité basée sur un tas

  * "bisect" — Algorithme de bissection de listes

  * "array" — Tableaux efficaces de valeurs numériques

  * "weakref" --- Weak references

  * "types" --- Dynamic type creation and names for built-in types

  * "copy" — Opérations de copie superficielle et récursive

  * "pprint" — L’affichage élégant de données

  * "reprlib" --- Alternate "repr()" implementation

  * "enum" — Énumérations

  * "graphlib" — Fonctionnalités pour travailler avec des structures
    de type graphe

* Modules numériques et mathématiques

  * "numbers" — Classes de base abstraites numériques

  * Fonctions mathématiques — "math"

  * Fonctions mathématiques pour nombres complexes — "cmath"

  * "decimal" — Arithmétique décimale en virgule fixe et flottante

  * "fractions" — Nombres rationnels

  * "random" — Génère des nombres pseudo-aléatoires

  * "statistics" — Fonctions mathématiques pour les statistiques

* Modules de programmation fonctionnelle

  * "itertools" — Fonctions créant des itérateurs pour boucler
    efficacement

  * "functools" — Fonctions d'ordre supérieur et opérations sur des
    objets appelables

  * "operator" — Opérateurs standards en tant que fonctions

* Accès aux Fichiers et aux Dossiers

  * "pathlib" — Chemins de système de fichiers orientés objet

  * "os.path" — manipulation courante des chemins

  * "fileinput" — Parcourt les lignes provenant de plusieurs entrées

  * "stat" --- Interpreting "stat()" results

  * "filecmp" – Comparaisons de fichiers et de répertoires

  * "tempfile" — Génération de fichiers et répertoires temporaires

  * "glob" — Recherche de chemins de style Unix selon certains motifs

  * "fnmatch" — Filtrage par motif des noms de fichiers Unix

  * "linecache" — Accès direct aux lignes d'un texte

  * "shutil" --- Opérations de haut niveau sur les fichiers

* Persistance des données

  * "pickle" — Sérialisation d'objets Python

  * "copyreg" — Enregistre les fonctions support de "pickle"

  * "shelve" — Persistance d’un objet Python

  * "marshal" — Sérialisation interne des objets Python

  * "dbm" --- Interfaces to Unix "databases"

  * "sqlite3" — Interface DB-API 2.0 pour bases de données SQLite

* Compression de donnée et archivage

  * "zlib" — Compression compatible avec **gzip**

  * "gzip" — Support pour les fichiers **gzip**

  * "bz2" — Prise en charge de la compression **bzip2**

  * "lzma" — Compression via l'algorithme LZMA

  * "zipfile" — Travailler avec des archives ZIP

  * "tarfile" — Lecture et écriture de fichiers d'archives **tar**

* Formats de fichiers

  * "csv" — Lecture et écriture de fichiers CSV

  * "configparser" — Lecture et écriture de fichiers de configuration

  * "tomllib" --- Parse TOML files

  * "netrc" — traitement de fichier *netrc*

  * "plistlib" --- Generate and parse Apple ".plist" files

* Service de cryptographie

  * "hashlib" --- Algorithmes de hachage sécurisés et synthèse de
    messages

  * "hmac" — Authentification de messages par hachage en combinaison
    avec une clé secrète

  * "secrets" — Générer des nombres aléatoires de façon sécurisée pour
    la gestion des secrets

* Services génériques du système d'exploitation

  * "os" — Diverses interfaces pour le système d'exploitation

  * "io" — Outils de base pour l'utilisation des flux

  * "time" — Accès au temps et conversions

  * "argparse" -- Analyseur d'arguments, d'options, et de sous-
    commandes de ligne de commande

  * "getopt" – Analyseur de style C pour les options de ligne de
    commande

  * "logging" — Fonctionnalités de journalisation pour Python

  * "logging.config" --- Logging configuration

  * "logging.handlers" — Gestionnaires de journalisation

  * Saisie de mot de passe portable

  * "curses" --- Terminal handling for character-cell displays

  * "curses.textpad" --- Text input widget for curses programs

  * "curses.ascii" --- Utilities for ASCII characters

  * "curses.panel" --- A panel stack extension for curses

  * "platform" — Accès aux données sous-jacentes de la plateforme

  * "errno" — Symboles du système *errno* standard

  * "ctypes" — Bibliothèque Python d'appels à des fonctions externes

* Exécution concourante

  * "threading" — Parallélisme basé sur les fils d’exécution
    (*threads*)

  * "multiprocessing" — Parallélisme par processus

  * "multiprocessing.shared_memory" --- Shared memory for direct
    access across processes

  * The "concurrent" package

  * "concurrent.futures" --- Launching parallel tasks

  * "subprocess" — Gestion de sous-processus

  * "sched" --- Event scheduler

  * "queue" — File synchronisée

  * "contextvars" — Variables de contexte

  * "_thread" — API bas niveau de gestion de fils d'exécution

* Réseau et communication entre processus

  * "asyncio" — Entrées/Sorties asynchrones

  * "socket" — Gestion réseau de bas niveau

  * "ssl" — Emballage TLS/SSL pour les objets connecteurs

  * "select" --- Waiting for I/O completion

  * "selectors" --- High-level I/O multiplexing

  * "signal" --- Set handlers for asynchronous events

  * "mmap" --- Memory-mapped file support

* Traitement des données provenant d'Internet

  * "email" — Un paquet de gestion des e-mails et MIME

  * "json" — Encodage et décodage JSON

  * "mailbox" — Manipuler les boîtes de courriels dans différents
    formats

  * "mimetypes" --- Map filenames to MIME types

  * "base64" — Encodages base16, base32, base64 et base85

  * "binascii" --- Conversion entre binaire et ASCII

  * "quopri" — Encode et décode des données *MIME quoted-printable*

* Outils de traitement de balises structurées

  * "html" — Support du HyperText Markup Language

  * "html.parser"— Un analyseur syntaxique simple pour HTML et XHTML

  * "html.entities" — Définitions des entités HTML générales

  * Modules de traitement XML

  * "xml.etree.ElementTree" — L'API *ElementTree* XML

  * "xml.dom" — L'API Document Object Model

  * "xml.dom.minidom" — implémentation minimale de DOM

  * "xml.dom.pulldom" — gestion de la construction partielle des
    arbres DOM

  * "xml.sax" — Prise en charge des analyseurs *SAX2*

  * "xml.sax.handler" — Classes mères pour les gestionnaires *SAX*

  * "xml.sax.saxutils" — Utilitaires SAX

  * "xml.sax.xmlreader" --- Interface for XML parsers

  * "xml.parsers.expat" --- Fast XML parsing using Expat

* Gestion des protocoles internet

  * "webbrowser" --- Convenient web-browser controller

  * "wsgiref" — Outils et implémentation de référence de WSGI

  * "urllib" — Modules de gestion des URLs

  * "urllib.request" --- Extensible library for opening URLs

  * "urllib.response" --- Response classes used by urllib

  * "urllib.parse" --- Parse URLs into components

  * "urllib.error" --- Classes d'exceptions levées par
    *urllib.request*

  * "urllib.robotparser" — Analyseur de fichiers *robots.txt*

  * "http" — modules HTTP

  * "http.client" — Client pour le protocole HTTP

  * "ftplib" — Le protocole client FTP

  * "poplib" --- POP3 protocol client

  * "imaplib" --- IMAP4 protocol client

  * "smtplib" --- SMTP protocol client

  * "uuid" — Objets UUID d'après la **RFC 4122**

  * "socketserver" — Cadriciel pour serveurs réseaux

  * "http.server" --- serveurs HTTP

  * "http.cookies" — gestion d'état pour HTTP

  * "http.cookiejar" --- Cookie handling for HTTP clients

  * "xmlrpc" --- XMLRPC server and client modules

  * "xmlrpc.client" --- XML-RPC client access

  * "xmlrpc.server" --- Basic XML-RPC servers

  * "ipaddress" — Bibliothèque de manipulation IPv4/IPv6

* Services multimédia

  * "wave" --- Lecture et écriture des fichiers WAV

  * "colorsys" — Conversions entre les systèmes de couleurs

* Internationalisation

  * "gettext" — Services d'internationalisation multilingue

  * "locale" — Services d'internationalisation

* Cadriciels d'applications

  * "turtle" — Tortue graphique

  * "cmd" — Interpréteurs en ligne de commande.

  * "shlex" --- Simple lexical analysis

* Interfaces Utilisateur Graphiques avec Tk

  * "tkinter" — Interface Python pour *Tcl/Tk*

  * "tkinter.colorchooser" — Boîte de dialogue de choix de couleur

  * "tkinter.font" — enveloppe pour les polices *Tkinter*

  * Boîtes de dialogue *Tkinter*

  * "tkinter.messagebox" – Invites de messages *Tkinter*

  * "tkinter.scrolledtext" — Gadget texte avec barre de défilement

  * "tkinter.dnd" – Prise en charge du glisser-déposer

  * "tkinter.ttk" — Widgets sur le thème *Tk*

  * "tkinter.tix" — Widgets d'extension pour *Tk*

  * *IDLE*

* Outils de développement

  * "typing" — Prise en charge des annotations de type

  * "pydoc" — Générateur de documentation et système d’aide en ligne

  * Python Development Mode

  * "doctest" — Exemples de tests interactifs en Python

  * "unittest" — *Framework* de tests unitaires

  * "unittest.mock" — Bibliothèque d'objets simulacres

  * "unittest.mock" --- getting started

  * 2to3 --- Automated Python 2 to 3 code translation

  * "test" --- Regression tests package for Python

  * "test.support" --- Utilities for the Python test suite

  * "test.support.socket_helper" --- Utilities for socket tests

  * "test.support.script_helper" --- Utilities for the Python
    execution tests

  * "test.support.bytecode_helper" --- Support tools for testing
    correct bytecode generation

  * "test.support.threading_helper" --- Utilities for threading tests

  * "test.support.os_helper" --- Utilities for os tests

  * "test.support.import_helper" --- Utilities for import tests

  * "test.support.warnings_helper" --- Utilities for warnings tests

* Débogueur et instrumentation

  * Table des évènements d'audit

  * "bdb" — Framework de débogage

  * "faulthandler" --- Dump the Python traceback

  * "pdb" — Le débogueur Python

  * The Python Profilers

  * "timeit" — Mesurer le temps d'exécution de fragments de code

  * "trace" --- Trace or track Python statement execution

  * "tracemalloc" --- Trace memory allocations

* Paquets et distribution de paquets logiciels

  * "distutils" --- Building and installing Python modules

  * "ensurepip" — Amorçage de l'installateur "pip"

  * "venv" — Création d'environnements virtuels

  * "zipapp" — Gestion des archives zip exécutables Python

* Environnement d'exécution Python

  * "sys" — Paramètres et fonctions propres à des systèmes

  * "sysconfig" --- Provide access to Python's configuration
    information

  * "builtins" — Objets natifs

  * "__main__" — Environnement d'exécution principal

  * "warnings" --- Contrôle des alertes

  * "dataclasses" --- Data Classes

  * "contextlib" — Utilitaires pour les contextes s'appuyant sur
    l'instruction "with"

  * "abc" — Classes de Base Abstraites

  * "atexit" — Gestionnaire de fin de programme

  * "traceback" --- Print or retrieve a stack traceback

  * "__future__" — Définitions des futurs

  * "gc" — Interface du ramasse-miettes

  * "inspect" — Inspection d'objets

  * "site" --- Site-specific configuration hook

* Interpréteurs Python personnalisés

  * "code" --- Interpreter base classes

  * "codeop" — Compilation de code Python

* Importer des modules

  * "zipimport" — Import de modules à partir d'archives Zip

  * "pkgutil" — Utilitaire d'extension de package

  * "modulefinder" — Identifie les modules utilisés par un script

  * "runpy" --- Locating and executing Python modules

  * "importlib" --- The implementation of "import"

  * "importlib.resources" -- Package resource reading, opening and
    access

  * "importlib.resources.abc" -- Abstract base classes for resources

  * "importlib.metadata" -- Accessing package metadata

  * The initialization of the "sys.path" module search path

* Services du Langage Python

  * "ast" — Arbres Syntaxiques Abstraits

  * "symtable" --- Access to the compiler's symbol tables

  * "token" --- Constantes utilisées avec les arbres d'analyse Python
    (*parse trees*)

  * "keyword" — Tester si des chaînes sont des mot-clés Python

  * "tokenize" — Analyseur lexical de Python

  * "tabnanny" — Détection d'indentation ambiguë

  * "pyclbr" --- Python module browser support

  * "py_compile" — Compilation de sources Python

  * "compileall" — Génération du code intermédiaire des bibliothèques
    Python

  * "dis" – Désassembleur pour le code intermédiaire de Python

  * "pickletools" --- Tools for pickle developers

* Services spécifiques à MS Windows

  * "msvcrt" --- Useful routines from the MS VC++ runtime

  * "winreg" --- Windows registry access

  * "winsound" --- Sound-playing interface for Windows

* Services spécifiques à Unix

  * "posix" — Les appels système POSIX les plus courants

  * "pwd" --- The password database

  * "grp" --- The group database

  * "termios" — Contrôle de terminal de style POSIX

  * "tty" — Fonctions de gestion du terminal

  * "pty" — Outils de manipulation de pseudo-terminaux

  * "fcntl" --- The "fcntl" and "ioctl" system calls

  * "resource" --- Resource usage information

  * "syslog" --- Routines de bibliothèque *syslog* Unix

* Modules command-line interface (CLI)

* Modules remplacés

  * "aifc" — Lis et écrit dans les fichiers AIFF et AIFC

  * "asynchat" --- Asynchronous socket command/response handler

  * "asyncore" --- Asynchronous socket handler

  * "audioop" — Manipulation de données audio brutes

  * "cgi" --- Common Gateway Interface support

  * "cgitb" — Gestionnaire d'exceptions pour les scripts CGI

  * "chunk" --- Read IFF chunked data

  * "crypt" --- Function to check Unix passwords

  * "imghdr" --- Determine the type of an image

  * "imp" --- Access the *import* internals

  * "mailcap" — Manipulation de fichiers Mailcap

  * "msilib" --- Read and write Microsoft Installer files

  * "nis" — Interface à Sun's NIS (pages jaunes)

  * "nntplib" --- NNTP protocol client

  * "optparse" --- Parser for command line options

  * "ossaudiodev" --- Access to OSS-compatible audio devices

  * "pipes" — Interface au *pipelines* shell

  * "smtpd" --- SMTP Server

  * "sndhdr" — Détermine le type d'un fichier audio

  * "spwd" — La base de données de mots de passe *shadow*

  * "sunau" --- Read and write Sun AU files

  * "telnetlib" --- Telnet client

  * "uu" — Encode et décode les fichiers *uuencode*

  * "xdrlib" --- Encode and decode XDR data

* Security Considerations
