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

Les modules documentés dans ce chapitre fournissent des interfaces
vers des fonctionnalités communes à la grande majorité des systèmes
d'exploitation, telles que les fichiers et l'horloge.  Bien que ces
interfaces soient classiquement calquées sur les interfaces Unix ou C,
elles sont aussi disponibles sur la plupart des autres systèmes. En
voici un aperçu.

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

  * 16.1.1. Noms de fichiers, arguments en ligne de commande, et
    variables d'environnement

  * 16.1.2. Paramètres de processus

  * 16.1.3. Création de fichiers objets

  * 16.1.4. Opérations sur les descripteurs de fichiers

    * 16.1.4.1. Demander la taille d'un terminal

    * 16.1.4.2. Héritage de descripteurs de fichiers

  * 16.1.5. Fichiers et répertoires

    * 16.1.5.1. Attributs étendus pour Linux

  * 16.1.6. Gestion des processus

  * 16.1.7. Interface pour l'ordonnanceur

  * 16.1.8. Diverses informations sur le système

  * 16.1.9. Nombres aléatoires

* 16.2. "io" --- Core tools for working with streams

  * 16.2.1. Aperçu

    * 16.2.1.1. Text I/O

    * 16.2.1.2. Binary I/O

    * 16.2.1.3. Raw I/O

  * 16.2.2. High-level Module Interface

    * 16.2.2.1. In-memory streams

  * 16.2.3. Class hierarchy

    * 16.2.3.1. I/O Base Classes

    * 16.2.3.2. Raw File I/O

    * 16.2.3.3. Buffered Streams

    * 16.2.3.4. Text I/O

  * 16.2.4. Performances

    * 16.2.4.1. Binary I/O

    * 16.2.4.2. Text I/O

    * 16.2.4.3. Fils d'exécution

    * 16.2.4.4. Reentrancy

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

  * 16.3.1. Fonctions

  * 16.3.2. Constantes d’identification d’horloge

  * 16.3.3. Constantes de fuseau horaire

* 16.4. "argparse" -- Parseur d'arguments, d'options, et de sous-
  commandes de ligne de commande

  * 16.4.1. Exemple

    * 16.4.1.1. Créer un analyseur (*parser* en anglais)

    * 16.4.1.2. Ajouter des arguments

    * 16.4.1.3. Analyse des arguments

  * 16.4.2. Objets "ArgumentParser"

    * 16.4.2.1. Le paramètre *prog*

    * 16.4.2.2. Le paramètre *usage*

    * 16.4.2.3. Le paramètre *description*

    * 16.4.2.4. Le paramètre *epilog*

    * 16.4.2.5. Le paramètre *parents*

    * 16.4.2.6. Le paramètre *formatter_class*

    * 16.4.2.7. Le paramètre *prefix_chars*

    * 16.4.2.8. Le paramètre *fromfile_prefix_chars*

    * 16.4.2.9. Le paramètre *argument_default*

    * 16.4.2.10. Le paramètre *allow_abbrev*

    * 16.4.2.11. Le paramètre *conflict_handler*

    * 16.4.2.12. Le paramètre *add_help*

  * 16.4.3. La méthode *add_argument()*

    * 16.4.3.1. Les paramètres *name* et *flags*

    * 16.4.3.2. Le paramètre *action*

    * 16.4.3.3. Le paramètre *nargs*

    * 16.4.3.4. Le paramètre *const*

    * 16.4.3.5. Le paramètre *default*

    * 16.4.3.6. Le paramètre *type*

    * 16.4.3.7. Le paramètre *choices*

    * 16.4.3.8. Le paramètre *required*

    * 16.4.3.9. Le paramètre *help*

    * 16.4.3.10. Le paramètre *metavar*

    * 16.4.3.11. Le paramètre *dest*

    * 16.4.3.12. Classes Action

  * 16.4.4. La méthode *parse_args()*

    * 16.4.4.1. Option value syntax

    * 16.4.4.2. Arguments invalides

    * 16.4.4.3. Arguments contenant "-"

    * 16.4.4.4. Arguments abrégés (Par comparaison de leurs préfixes)

    * 16.4.4.5. Au-delà de "sys.argv"

    * 16.4.4.6. L'objet namespace

  * 16.4.5. Autres outils

    * 16.4.5.1. Sous commandes

    * 16.4.5.2. Objets "FileType"

    * 16.4.5.3. Groupes d'arguments

    * 16.4.5.4. Exclusion mutuelle

    * 16.4.5.5. Valeurs par défaut de l'analyseur

    * 16.4.5.6. Afficher l'aide

    * 16.4.5.7. *Parsing* partiel

    * 16.4.5.8. Personnaliser le *parsing* de fichiers

    * 16.4.5.9. Exiting methods

  * 16.4.6. Mettre à jour du code "optparse"

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

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

  * 16.6.1. Objets Enregistreurs

  * 16.6.2. Niveaux de journalisation

  * 16.6.3. Handler Objects

  * 16.6.4. Formatter Objects

  * 16.6.5. Filter Objects

  * 16.6.6. LogRecord Objects

  * 16.6.7. LogRecord attributes

  * 16.6.8. LoggerAdapter Objects

  * 16.6.9. Thread Safety

  * 16.6.10. Fonctions de niveau module

  * 16.6.11. Module-Level Attributes

  * 16.6.12. Integration with the warnings module

* 16.7. "logging.config" --- Logging configuration

  * 16.7.1. Configuration functions

  * 16.7.2. Configuration dictionary schema

    * 16.7.2.1. Dictionary Schema Details

    * 16.7.2.2. Incremental Configuration

    * 16.7.2.3. Object connections

    * 16.7.2.4. User-defined objects

    * 16.7.2.5. Access to external objects

    * 16.7.2.6. Access to internal objects

    * 16.7.2.7. Import resolution and custom importers

  * 16.7.3. Configuration file format

* 16.8. "logging.handlers" --- Logging handlers

  * 16.8.1. StreamHandler

  * 16.8.2. FileHandler

  * 16.8.3. NullHandler

  * 16.8.4. WatchedFileHandler

  * 16.8.5. BaseRotatingHandler

  * 16.8.6. RotatingFileHandler

  * 16.8.7. TimedRotatingFileHandler

  * 16.8.8. SocketHandler

  * 16.8.9. DatagramHandler

  * 16.8.10. SysLogHandler

  * 16.8.11. NTEventLogHandler

  * 16.8.12. SMTPHandler

  * 16.8.13. MemoryHandler

  * 16.8.14. HTTPHandler

  * 16.8.15. QueueHandler

  * 16.8.16. QueueListener

* 16.9. Saisie de mot de passe portable

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

  * 16.10.1. Fonctions

  * 16.10.2. Window Objects

  * 16.10.3. Constantes

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

  * 16.11.1. Textbox objects

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

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

  * 16.13.1. Fonctions

  * 16.13.2. Panel Objects

* 16.14. "platform" ---  Access to underlying platform's identifying
  data

  * 16.14.1. Cross Platform

  * 16.14.2. Java Platform

  * 16.14.3. Windows Platform

    * 16.14.3.1. Win95/98 specific

  * 16.14.4. Mac OS Platform

  * 16.14.5. Unix Platforms

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

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

  * 16.16.1. Didacticiel de *ctypes*

    * 16.16.1.1. Chargement des DLL

    * 16.16.1.2. Accès aux fonctions des DLL chargées

    * 16.16.1.3. Appel de fonctions

    * 16.16.1.4. Types de données fondamentaux

    * 16.16.1.5. Appel de fonctions, suite

    * 16.16.1.6. Appel de fonctions avec des types de données
      personnalisés

    * 16.16.1.7. Définition du type des arguments nécessaires
      (prototypes de fonction)

    * 16.16.1.8. Types de sortie

    * 16.16.1.9. Passage de pointeurs (passage de paramètres par
      référence)

    * 16.16.1.10. Structures et unions

    * 16.16.1.11. Alignement et boutisme des structures et des unions

    * 16.16.1.12. Champs de bits dans les structures et les unions

    * 16.16.1.13. Tableaux

    * 16.16.1.14. Pointeurs

    * 16.16.1.15. Conversions de type

    * 16.16.1.16. Types incomplets

    * 16.16.1.17. Fonctions de rappel

    * 16.16.1.18. Accès aux variables exportées depuis une DLL

    * 16.16.1.19. Pièges

    * 16.16.1.20. Types de données à taille flottante

  * 16.16.2. Référence du module

    * 16.16.2.1. Recherche de bibliothèques partagées

    * 16.16.2.2. Chargement des bibliothèques partagées

    * 16.16.2.3. Fonctions externes

    * 16.16.2.4. Prototypes de fonction

    * 16.16.2.5. Fonctions utilitaires

    * 16.16.2.6. Types de données

    * 16.16.2.7. Types de données fondamentaux

    * 16.16.2.8. Types de donnée dérivés de Structure

    * 16.16.2.9. Tableaux et pointeurs
