1177 lines
48 KiB
Plaintext
1177 lines
48 KiB
Plaintext
# SOME DESCRIPTIVE TITLE.
|
||
# Copyright (C) 1990-2016, Python Software Foundation
|
||
# This file is distributed under the same license as the Python package.
|
||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||
#
|
||
#, fuzzy
|
||
msgid ""
|
||
msgstr ""
|
||
"Project-Id-Version: Python 2.7\n"
|
||
"Report-Msgid-Bugs-To: \n"
|
||
"POT-Creation-Date: 2016-10-30 10:44+0100\n"
|
||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||
"MIME-Version: 1.0\n"
|
||
"Content-Type: text/plain; charset=UTF-8\n"
|
||
"Content-Transfer-Encoding: 8bit\n"
|
||
|
||
#: ../Doc/faq/library.rst:5
|
||
msgid "Library and Extension FAQ"
|
||
msgstr "FAQ sur la bibliothèque et les extension"
|
||
|
||
#: ../Doc/faq/library.rst:12
|
||
msgid "General Library Questions"
|
||
msgstr "Questions générales sur la bibliothèque"
|
||
|
||
#: ../Doc/faq/library.rst:15
|
||
msgid "How do I find a module or application to perform task X?"
|
||
msgstr ""
|
||
"Comment puis-je trouver un module ou une application pour exécuter la tâche "
|
||
"X?"
|
||
|
||
#: ../Doc/faq/library.rst:17
|
||
msgid ""
|
||
"Check :ref:`the Library Reference <library-index>` to see if there's a "
|
||
"relevant standard library module. (Eventually you'll learn what's in the "
|
||
"standard library and will be able to skip this step.)"
|
||
msgstr ""
|
||
"Regardez si la :ref:`bibliothèque standard <library-index>` contient un "
|
||
"module approprié (avec l'expérience, vous connaitrez le contenu de la "
|
||
"bibliothèque standard et pourrez sauter cette étape)."
|
||
|
||
#: ../Doc/faq/library.rst:21
|
||
msgid ""
|
||
"For third-party packages, search the `Python Package Index <https://pypi."
|
||
"python.org/pypi>`_ or try `Google <https://www.google.com>`_ or another Web "
|
||
"search engine. Searching for \"Python\" plus a keyword or two for your "
|
||
"topic of interest will usually find something helpful."
|
||
msgstr ""
|
||
|
||
#: ../Doc/faq/library.rst:28
|
||
msgid "Where is the math.py (socket.py, regex.py, etc.) source file?"
|
||
msgstr ""
|
||
"Où se situe le fichier source *math.py* (*socket.py*, *regex.py*, etc.) ?"
|
||
|
||
#: ../Doc/faq/library.rst:30
|
||
msgid ""
|
||
"If you can't find a source file for a module it may be a built-in or "
|
||
"dynamically loaded module implemented in C, C++ or other compiled language. "
|
||
"In this case you may not have the source file or it may be something like :"
|
||
"file:`mathmodule.c`, somewhere in a C source directory (not on the Python "
|
||
"Path)."
|
||
msgstr ""
|
||
"Si vous ne parvenez pas à trouver le fichier source d'un module, c'est peut-"
|
||
"être parce que celui-ci est un module natif ou bien un module implémenté en "
|
||
"C, C++, ou autre langage compilé, qui est chargé dynamiquement. Dans ce cas, "
|
||
"vous ne possédez peut-être pas le fichier source ou celui-ci est en réalité "
|
||
"stocké quelque part dans un dossier de fichiers source C (qui ne sera pas "
|
||
"dans le chemin Python), comme par exemple :file:`mathmodule.c`."
|
||
|
||
#: ../Doc/faq/library.rst:35
|
||
msgid "There are (at least) three kinds of modules in Python:"
|
||
msgstr "Il y a (au moins) trois types de modules dans Python"
|
||
|
||
#: ../Doc/faq/library.rst:37
|
||
msgid "modules written in Python (.py);"
|
||
msgstr "modules écrits en Python (*.py*) ;"
|
||
|
||
#: ../Doc/faq/library.rst:38
|
||
msgid ""
|
||
"modules written in C and dynamically loaded (.dll, .pyd, .so, .sl, etc);"
|
||
msgstr ""
|
||
"modules écrits en C et chargés dynamiquement (*.dll*, *.pyd*, *.so*, *.sl*, "
|
||
"*.etc*) ;"
|
||
|
||
#: ../Doc/faq/library.rst:39
|
||
msgid ""
|
||
"modules written in C and linked with the interpreter; to get a list of "
|
||
"these, type::"
|
||
msgstr ""
|
||
"les modules écrits en C et liés à l'interpréteur ; pour obtenir leur liste, "
|
||
"entrez ::"
|
||
|
||
#: ../Doc/faq/library.rst:47
|
||
msgid "How do I make a Python script executable on Unix?"
|
||
msgstr "Comment rendre un script Python exécutable sous Unix ?"
|
||
|
||
#: ../Doc/faq/library.rst:49
|
||
msgid ""
|
||
"You need to do two things: the script file's mode must be executable and the "
|
||
"first line must begin with ``#!`` followed by the path of the Python "
|
||
"interpreter."
|
||
msgstr ""
|
||
"Deux conditions doivent être remplies : les droits d'accès au fichier "
|
||
"doivent permettre son exécution et la première ligne du script doit "
|
||
"commencer par ``#!`` suivi du chemin vers l'interpréteur Python."
|
||
|
||
#: ../Doc/faq/library.rst:53
|
||
msgid ""
|
||
"The first is done by executing ``chmod +x scriptfile`` or perhaps ``chmod "
|
||
"755 scriptfile``."
|
||
msgstr ""
|
||
"La première condition est remplie en exécutant ``chmod +x scriptfile`` ou "
|
||
"``chmod 755 scriptfile``."
|
||
|
||
#: ../Doc/faq/library.rst:56
|
||
msgid ""
|
||
"The second can be done in a number of ways. The most straightforward way is "
|
||
"to write ::"
|
||
msgstr ""
|
||
"Il y a plusieurs façons de remplir la seconde. La plus simple consiste à "
|
||
"écrire au tout début du fichier ::"
|
||
|
||
#: ../Doc/faq/library.rst:61
|
||
msgid ""
|
||
"as the very first line of your file, using the pathname for where the Python "
|
||
"interpreter is installed on your platform."
|
||
msgstr "en utilisant le chemin de l'interpréteur Python sur votre machine."
|
||
|
||
#: ../Doc/faq/library.rst:64
|
||
msgid ""
|
||
"If you would like the script to be independent of where the Python "
|
||
"interpreter lives, you can use the :program:`env` program. Almost all Unix "
|
||
"variants support the following, assuming the Python interpreter is in a "
|
||
"directory on the user's :envvar:`PATH`::"
|
||
msgstr ""
|
||
"Pour rendre ce script indépendant de la localisation de l'interpréteur "
|
||
"Python, il faut utiliser le programme :program:`env`. La ligne ci-dessous "
|
||
"fonctionne sur la quasi-totalité des dérivés de Unix, à condition que "
|
||
"l'interpréteur Python soit dans un dossier référencé dans la variable :"
|
||
"envvar:`PATH` de l'utilisateur ::"
|
||
|
||
#: ../Doc/faq/library.rst:71
|
||
msgid ""
|
||
"*Don't* do this for CGI scripts. The :envvar:`PATH` variable for CGI "
|
||
"scripts is often very minimal, so you need to use the actual absolute "
|
||
"pathname of the interpreter."
|
||
msgstr ""
|
||
"Ne faites *pas* ceci pour des scripts CGI. La variable :envvar:`PATH` des "
|
||
"scripts CGI est souvent très succincte, il faut par conséquent préciser le "
|
||
"chemin absolu réel de l'interpréteur."
|
||
|
||
#: ../Doc/faq/library.rst:75
|
||
msgid ""
|
||
"Occasionally, a user's environment is so full that the :program:`/usr/bin/"
|
||
"env` program fails; or there's no env program at all. In that case, you can "
|
||
"try the following hack (due to Alex Rezinsky)::"
|
||
msgstr ""
|
||
|
||
#: ../Doc/faq/library.rst:84
|
||
msgid ""
|
||
"The minor disadvantage is that this defines the script's __doc__ string. "
|
||
"However, you can fix that by adding ::"
|
||
msgstr ""
|
||
"Le léger inconvénient est que cela définit la variable *__doc__* du script. "
|
||
"Cependant, il est possible de corriger cela en ajoutant ::"
|
||
|
||
#: ../Doc/faq/library.rst:92
|
||
msgid "Is there a curses/termcap package for Python?"
|
||
msgstr "Existe-t'il un module *curse* ou *termcap* en Python ?"
|
||
|
||
#: ../Doc/faq/library.rst:96
|
||
msgid ""
|
||
"For Unix variants the standard Python source distribution comes with a "
|
||
"curses module in the :source:`Modules` subdirectory, though it's not "
|
||
"compiled by default. (Note that this is not available in the Windows "
|
||
"distribution -- there is no curses module for Windows.)"
|
||
msgstr ""
|
||
|
||
#: ../Doc/faq/library.rst:101
|
||
msgid ""
|
||
"The :mod:`curses` module supports basic curses features as well as many "
|
||
"additional functions from ncurses and SYSV curses such as colour, "
|
||
"alternative character set support, pads, and mouse support. This means the "
|
||
"module isn't compatible with operating systems that only have BSD curses, "
|
||
"but there don't seem to be any currently maintained OSes that fall into this "
|
||
"category."
|
||
msgstr ""
|
||
"Le module :mod:`curses` comprend les fonctionnalités de base de *curses* et "
|
||
"beaucoup de fonctionnalités supplémentaires provenant de *ncurses* et de "
|
||
"*SYSV curses* comme la couleur, la gestion des ensembles de caractères "
|
||
"alternatifs, la prise en charge du pavé tactile et de la souris. Cela "
|
||
"implique que le module n'est pas compatible avec des systèmes d'exploitation "
|
||
"qui n'ont que le *curses* de BSD mais, de nos jours, de tels systèmes "
|
||
"d'exploitation ne semblent plus exister ou être maintenus."
|
||
|
||
#: ../Doc/faq/library.rst:107
|
||
msgid ""
|
||
"For Windows: use `the consolelib module <http://effbot.org/zone/console-"
|
||
"index.htm>`_."
|
||
msgstr ""
|
||
"Pour Windows : utilisez le module `consolelib <http://effbot.org/zone/"
|
||
"console-index.htm>`_."
|
||
|
||
#: ../Doc/faq/library.rst:112
|
||
msgid "Is there an equivalent to C's onexit() in Python?"
|
||
msgstr "Existe-t'il un équivalent à la fonction C ``onexit()`` en Python ?"
|
||
|
||
#: ../Doc/faq/library.rst:114
|
||
msgid ""
|
||
"The :mod:`atexit` module provides a register function that is similar to "
|
||
"C's :c:func:`onexit`."
|
||
msgstr ""
|
||
"Le module :mod:`atexit` fournit une fonction d'enregistrement similaire à la "
|
||
"fonction C :c:func:`onexit`."
|
||
|
||
#: ../Doc/faq/library.rst:119
|
||
msgid "Why don't my signal handlers work?"
|
||
msgstr "Pourquoi mes gestionnaires de signaux ne fonctionnent-t'ils pas ?"
|
||
|
||
#: ../Doc/faq/library.rst:121
|
||
msgid ""
|
||
"The most common problem is that the signal handler is declared with the "
|
||
"wrong argument list. It is called as ::"
|
||
msgstr ""
|
||
"Le problème le plus courant est d'appeler le gestionnaire de signaux avec "
|
||
"les mauvais arguments. Un gestionnaire est appelé de la façon suivante ::"
|
||
|
||
#: ../Doc/faq/library.rst:126
|
||
msgid "so it should be declared with two arguments::"
|
||
msgstr "donc il doit être déclaré avec deux paramètres ::"
|
||
|
||
#: ../Doc/faq/library.rst:133
|
||
msgid "Common tasks"
|
||
msgstr "Tâches fréquentes"
|
||
|
||
#: ../Doc/faq/library.rst:136
|
||
msgid "How do I test a Python program or component?"
|
||
msgstr "Comment tester un programme ou un composant Python ?"
|
||
|
||
#: ../Doc/faq/library.rst:138
|
||
msgid ""
|
||
"Python comes with two testing frameworks. The :mod:`doctest` module finds "
|
||
"examples in the docstrings for a module and runs them, comparing the output "
|
||
"with the expected output given in the docstring."
|
||
msgstr ""
|
||
"Python fournit deux cadriciels de test. Le module :mod:`doctest` cherche des "
|
||
"exemples dans les *docstrings* d'un module et les exécute. Il compare alors "
|
||
"la sortie avec la sortie attendue, telle que définie dans la *docstring*."
|
||
|
||
#: ../Doc/faq/library.rst:142
|
||
msgid ""
|
||
"The :mod:`unittest` module is a fancier testing framework modelled on Java "
|
||
"and Smalltalk testing frameworks."
|
||
msgstr ""
|
||
"Le module :mod:`unittest` est un cadriciel un peu plus élaboré basé sur les "
|
||
"cadriciels de test de Java et de Smalltalk."
|
||
|
||
#: ../Doc/faq/library.rst:145
|
||
msgid ""
|
||
"To make testing easier, you should use good modular design in your program. "
|
||
"Your program should have almost all functionality encapsulated in either "
|
||
"functions or class methods -- and this sometimes has the surprising and "
|
||
"delightful effect of making the program run faster (because local variable "
|
||
"accesses are faster than global accesses). Furthermore the program should "
|
||
"avoid depending on mutating global variables, since this makes testing much "
|
||
"more difficult to do."
|
||
msgstr ""
|
||
"Pour rendre le test plus aisé, il est nécessaire de bien découper le code "
|
||
"d'un programme. Votre programme doit avoir la quasi-totalité des "
|
||
"fonctionnalités dans des fonctions ou des classes — et ceci a parfois "
|
||
"l'avantage aussi plaisant qu'inattendu de rendre le programme plus rapide, "
|
||
"les accès aux variables locales étant en effet plus rapides que les accès "
|
||
"aux variables globales. De plus le programme doit éviter au maximum de "
|
||
"manipuler des variables globales, car ceci rend le test beaucoup plus "
|
||
"difficile."
|
||
|
||
#: ../Doc/faq/library.rst:153
|
||
msgid "The \"global main logic\" of your program may be as simple as ::"
|
||
msgstr ""
|
||
"La « logique générale » d'un programme devrait être aussi simple que ::"
|
||
|
||
#: ../Doc/faq/library.rst:158
|
||
msgid "at the bottom of the main module of your program."
|
||
msgstr "à la fin du module principal du programme."
|
||
|
||
#: ../Doc/faq/library.rst:160
|
||
msgid ""
|
||
"Once your program is organized as a tractable collection of functions and "
|
||
"class behaviours you should write test functions that exercise the "
|
||
"behaviours. A test suite that automates a sequence of tests can be "
|
||
"associated with each module. This sounds like a lot of work, but since "
|
||
"Python is so terse and flexible it's surprisingly easy. You can make coding "
|
||
"much more pleasant and fun by writing your test functions in parallel with "
|
||
"the \"production code\", since this makes it easy to find bugs and even "
|
||
"design flaws earlier."
|
||
msgstr ""
|
||
"Une fois que la logique du programme est implémentée par un ensemble de "
|
||
"fonctions et de comportements de classes, il faut écrire des fonctions de "
|
||
"test qui vont éprouver cette logique. À chaque module, il est possible "
|
||
"d'associer une suite de tests qui joue de manière automatique un ensemble de "
|
||
"tests. Au premier abord, il semble qu'il faille fournir un effort "
|
||
"conséquent, mais comme Python est un langage concis et flexible, c'est "
|
||
"surprenamment aisé. Écrire simultanément le code « de production » et les "
|
||
"fonctions de test associées rend le développement plus agréable et plus "
|
||
"amusant, car ceci permet de trouver des bogues, voire des défauts de "
|
||
"conception, plus facilement."
|
||
|
||
#: ../Doc/faq/library.rst:168
|
||
msgid ""
|
||
"\"Support modules\" that are not intended to be the main module of a program "
|
||
"may include a self-test of the module. ::"
|
||
msgstr ""
|
||
"Les « modules auxiliaires » qui n'ont pas vocation à être le module "
|
||
"principal du programme peuvent inclure un test pour se vérifier eux-mêmes. ::"
|
||
|
||
#: ../Doc/faq/library.rst:174
|
||
msgid ""
|
||
"Even programs that interact with complex external interfaces may be tested "
|
||
"when the external interfaces are unavailable by using \"fake\" interfaces "
|
||
"implemented in Python."
|
||
msgstr ""
|
||
"Les programmes qui interagissent avec des interfaces externes complexes "
|
||
"peuvent être testés même quand ces interfaces ne sont pas disponibles, en "
|
||
"utilisant des interfaces « simulacres » implémentées en Python."
|
||
|
||
#: ../Doc/faq/library.rst:180
|
||
msgid "How do I create documentation from doc strings?"
|
||
msgstr "Comment générer la documentation à partir des *docstrings* ?"
|
||
|
||
#: ../Doc/faq/library.rst:182
|
||
msgid ""
|
||
"The :mod:`pydoc` module can create HTML from the doc strings in your Python "
|
||
"source code. An alternative for creating API documentation purely from "
|
||
"docstrings is `epydoc <http://epydoc.sourceforge.net/>`_. `Sphinx <http://"
|
||
"sphinx-doc.org>`_ can also include docstring content."
|
||
msgstr ""
|
||
"Le module :mod:`pydoc` peut générer du HTML à partir des *docstrings* du "
|
||
"code source Python. Il est aussi possible de documenter une API uniquement à "
|
||
"partir des *docstrings* à l'aide de `epydoc <http://epydoc.sourceforge.net/"
|
||
">`_. `Sphinx <http://sphinx-doc.org>`_ peut également inclure du contenu "
|
||
"provenant de *docstrings*."
|
||
|
||
#: ../Doc/faq/library.rst:189
|
||
msgid "How do I get a single keypress at a time?"
|
||
msgstr "Comment détecter qu'une touche est pressée ?"
|
||
|
||
#: ../Doc/faq/library.rst:191
|
||
msgid ""
|
||
"For Unix variants there are several solutions. It's straightforward to do "
|
||
"this using curses, but curses is a fairly large module to learn. Here's a "
|
||
"solution without curses::"
|
||
msgstr ""
|
||
|
||
#: ../Doc/faq/library.rst:216
|
||
msgid ""
|
||
"You need the :mod:`termios` and the :mod:`fcntl` module for any of this to "
|
||
"work, and I've only tried it on Linux, though it should work elsewhere. In "
|
||
"this code, characters are read and printed one at a time."
|
||
msgstr ""
|
||
|
||
#: ../Doc/faq/library.rst:220
|
||
msgid ""
|
||
":func:`termios.tcsetattr` turns off stdin's echoing and disables canonical "
|
||
"mode. :func:`fcntl.fnctl` is used to obtain stdin's file descriptor flags "
|
||
"and modify them for non-blocking mode. Since reading stdin when it is empty "
|
||
"results in an :exc:`IOError`, this error is caught and ignored."
|
||
msgstr ""
|
||
|
||
#: ../Doc/faq/library.rst:227
|
||
msgid "Threads"
|
||
msgstr "Fils d'exécution"
|
||
|
||
#: ../Doc/faq/library.rst:230
|
||
msgid "How do I program using threads?"
|
||
msgstr "Comment programmer avec des fils d'exécution ?"
|
||
|
||
#: ../Doc/faq/library.rst:234
|
||
msgid ""
|
||
"Be sure to use the :mod:`threading` module and not the :mod:`thread` module. "
|
||
"The :mod:`threading` module builds convenient abstractions on top of the low-"
|
||
"level primitives provided by the :mod:`thread` module."
|
||
msgstr ""
|
||
|
||
#: ../Doc/faq/library.rst:238
|
||
msgid ""
|
||
"Aahz has a set of slides from his threading tutorial that are helpful; see "
|
||
"http://www.pythoncraft.com/OSCON2001/."
|
||
msgstr ""
|
||
"Un ensemble de diapositives issues du didacticiel de Aahz sur les fils "
|
||
"d'exécution est disponible à http://www.pythoncraft.com/OSCON2001/."
|
||
|
||
#: ../Doc/faq/library.rst:243
|
||
msgid "None of my threads seem to run: why?"
|
||
msgstr "Aucun de mes fils ne semble s'exécuter : pourquoi ?"
|
||
|
||
#: ../Doc/faq/library.rst:245
|
||
msgid ""
|
||
"As soon as the main thread exits, all threads are killed. Your main thread "
|
||
"is running too quickly, giving the threads no time to do any work."
|
||
msgstr ""
|
||
"Dès que le fil d'exécution principal se termine, tous les fils sont tués. Le "
|
||
"fil principal s'exécute trop rapidement, sans laisser le temps aux autres "
|
||
"fils de faire quoi que ce soit."
|
||
|
||
#: ../Doc/faq/library.rst:248
|
||
msgid ""
|
||
"A simple fix is to add a sleep to the end of the program that's long enough "
|
||
"for all the threads to finish::"
|
||
msgstr ""
|
||
"Une correction simple consiste à ajouter un temps d'attente suffisamment "
|
||
"long à la fin du programme pour que tous les fils puissent se terminer ::"
|
||
|
||
#: ../Doc/faq/library.rst:262
|
||
msgid ""
|
||
"But now (on many platforms) the threads don't run in parallel, but appear to "
|
||
"run sequentially, one at a time! The reason is that the OS thread scheduler "
|
||
"doesn't start a new thread until the previous thread is blocked."
|
||
msgstr ""
|
||
"Mais à présent, sur beaucoup de plates-formes, les fils ne s'exécutent pas "
|
||
"en parallèle, mais semblent s'exécuter de manière séquentielle, l'un après "
|
||
"l'autre ! En réalité, l'ordonnanceur de fils du système d'exploitation ne "
|
||
"démarre pas de nouveau fil avant que le précédent ne soit bloqué."
|
||
|
||
#: ../Doc/faq/library.rst:266
|
||
msgid "A simple fix is to add a tiny sleep to the start of the run function::"
|
||
msgstr ""
|
||
"Une correction simple consiste à ajouter un petit temps d'attente au début "
|
||
"de la fonction ::"
|
||
|
||
#: ../Doc/faq/library.rst:278
|
||
msgid ""
|
||
"Instead of trying to guess a good delay value for :func:`time.sleep`, it's "
|
||
"better to use some kind of semaphore mechanism. One idea is to use the :mod:"
|
||
"`Queue` module to create a queue object, let each thread append a token to "
|
||
"the queue when it finishes, and let the main thread read as many tokens from "
|
||
"the queue as there are threads."
|
||
msgstr ""
|
||
|
||
#: ../Doc/faq/library.rst:286
|
||
msgid "How do I parcel out work among a bunch of worker threads?"
|
||
msgstr ""
|
||
"Comment découper et répartir une tâche au sein d'un ensemble de fils "
|
||
"d'exécutions ?"
|
||
|
||
#: ../Doc/faq/library.rst:288
|
||
msgid ""
|
||
"Use the :mod:`Queue` module to create a queue containing a list of jobs. "
|
||
"The :class:`~Queue.Queue` class maintains a list of objects and has a ``."
|
||
"put(obj)`` method that adds items to the queue and a ``.get()`` method to "
|
||
"return them. The class will take care of the locking necessary to ensure "
|
||
"that each job is handed out exactly once."
|
||
msgstr ""
|
||
|
||
#: ../Doc/faq/library.rst:294
|
||
msgid "Here's a trivial example::"
|
||
msgstr "Voici un exemple trivial ::"
|
||
|
||
#: ../Doc/faq/library.rst:332
|
||
msgid "When run, this will produce the following output:"
|
||
msgstr "Quand celui-ci est exécuté, il produit la sortie suivante :"
|
||
|
||
#: ../Doc/faq/library.rst:350
|
||
msgid ""
|
||
"Consult the module's documentation for more details; the :class:`~Queue."
|
||
"Queue` class provides a featureful interface."
|
||
msgstr ""
|
||
|
||
#: ../Doc/faq/library.rst:355
|
||
msgid "What kinds of global value mutation are thread-safe?"
|
||
msgstr ""
|
||
"Quels types de mutations sur des variables globales sont compatibles avec "
|
||
"les programmes à fils d'exécution multiples ? sécurisé ?"
|
||
|
||
#: ../Doc/faq/library.rst:357
|
||
msgid ""
|
||
"A :term:`global interpreter lock` (GIL) is used internally to ensure that "
|
||
"only one thread runs in the Python VM at a time. In general, Python offers "
|
||
"to switch among threads only between bytecode instructions; how frequently "
|
||
"it switches can be set via :func:`sys.setcheckinterval`. Each bytecode "
|
||
"instruction and therefore all the C implementation code reached from each "
|
||
"instruction is therefore atomic from the point of view of a Python program."
|
||
msgstr ""
|
||
|
||
#: ../Doc/faq/library.rst:364
|
||
msgid ""
|
||
"In theory, this means an exact accounting requires an exact understanding of "
|
||
"the PVM bytecode implementation. In practice, it means that operations on "
|
||
"shared variables of built-in data types (ints, lists, dicts, etc) that "
|
||
"\"look atomic\" really are."
|
||
msgstr ""
|
||
"En théorie, cela veut dire qu'un décompte exact nécessite une connaissance "
|
||
"parfaite de l'implémentation de la MVP. En pratique, cela veut dire que les "
|
||
"opérations sur des variables partagées de type natif (les entier, les "
|
||
"listes, les dictionnaires etc.) qui « semblent atomiques » le sont "
|
||
"réellement."
|
||
|
||
#: ../Doc/faq/library.rst:369
|
||
msgid ""
|
||
"For example, the following operations are all atomic (L, L1, L2 are lists, "
|
||
"D, D1, D2 are dicts, x, y are objects, i, j are ints)::"
|
||
msgstr ""
|
||
"Par exemple, les opérations suivantes sont toutes atomiques (*L*, *L1* et "
|
||
"*L2* sont des listes, *D*, *D1* et *D2* sont des dictionnaires, *x* et *y* "
|
||
"sont des objets, *i* et *j* des entiers) ::"
|
||
|
||
#: ../Doc/faq/library.rst:384
|
||
msgid "These aren't::"
|
||
msgstr "Les suivantes ne le sont pas ::"
|
||
|
||
#: ../Doc/faq/library.rst:391
|
||
msgid ""
|
||
"Operations that replace other objects may invoke those other objects' :meth:"
|
||
"`__del__` method when their reference count reaches zero, and that can "
|
||
"affect things. This is especially true for the mass updates to dictionaries "
|
||
"and lists. When in doubt, use a mutex!"
|
||
msgstr ""
|
||
"Les opérations qui remplacent d'autres objets peuvent invoquer la méthode :"
|
||
"meth:`__del__` de ces objets quand leur compteur de référence passe à zéro, "
|
||
"et cela peut avoir de l'impact. C'est tout particulièrement vrai pour les "
|
||
"des changements massifs sur des dictionnaires ou des listes. En cas de "
|
||
"doute, il vaut mieux utiliser un mutex."
|
||
|
||
#: ../Doc/faq/library.rst:398
|
||
msgid "Can't we get rid of the Global Interpreter Lock?"
|
||
msgstr "Pourquoi ne pas se débarrasser du verrou global de l'interpréteur ?"
|
||
|
||
#: ../Doc/faq/library.rst:403
|
||
msgid ""
|
||
"The :term:`global interpreter lock` (GIL) is often seen as a hindrance to "
|
||
"Python's deployment on high-end multiprocessor server machines, because a "
|
||
"multi-threaded Python program effectively only uses one CPU, due to the "
|
||
"insistence that (almost) all Python code can only run while the GIL is held."
|
||
msgstr ""
|
||
"Le :term:`verrou global de l'interpréteur <global interpreter lock>` (GIL) "
|
||
"est souvent vu comme un obstacle au déploiement de code Python sur des "
|
||
"serveurs puissants avec de nombreux processeurs, car un programme Python à "
|
||
"fils d'exécutions multiples n'utilise en réalité qu'un seul processeur. "
|
||
"Presque tout le code Python ne peut en effet être exécuté qu'avec le GIL "
|
||
"acquis."
|
||
|
||
#: ../Doc/faq/library.rst:408
|
||
msgid ""
|
||
"Back in the days of Python 1.5, Greg Stein actually implemented a "
|
||
"comprehensive patch set (the \"free threading\" patches) that removed the "
|
||
"GIL and replaced it with fine-grained locking. Unfortunately, even on "
|
||
"Windows (where locks are very efficient) this ran ordinary Python code about "
|
||
"twice as slow as the interpreter using the GIL. On Linux the performance "
|
||
"loss was even worse because pthread locks aren't as efficient."
|
||
msgstr ""
|
||
|
||
#: ../Doc/faq/library.rst:415
|
||
msgid ""
|
||
"Since then, the idea of getting rid of the GIL has occasionally come up but "
|
||
"nobody has found a way to deal with the expected slowdown, and users who "
|
||
"don't use threads would not be happy if their code ran at half the speed. "
|
||
"Greg's free threading patch set has not been kept up-to-date for later "
|
||
"Python versions."
|
||
msgstr ""
|
||
|
||
#: ../Doc/faq/library.rst:420
|
||
msgid ""
|
||
"This doesn't mean that you can't make good use of Python on multi-CPU "
|
||
"machines! You just have to be creative with dividing the work up between "
|
||
"multiple *processes* rather than multiple *threads*. Judicious use of C "
|
||
"extensions will also help; if you use a C extension to perform a time-"
|
||
"consuming task, the extension can release the GIL while the thread of "
|
||
"execution is in the C code and allow other threads to get some work done."
|
||
msgstr ""
|
||
|
||
#: ../Doc/faq/library.rst:427
|
||
msgid ""
|
||
"It has been suggested that the GIL should be a per-interpreter-state lock "
|
||
"rather than truly global; interpreters then wouldn't be able to share "
|
||
"objects. Unfortunately, this isn't likely to happen either. It would be a "
|
||
"tremendous amount of work, because many object implementations currently "
|
||
"have global state. For example, small integers and short strings are cached; "
|
||
"these caches would have to be moved to the interpreter state. Other object "
|
||
"types have their own free list; these free lists would have to be moved to "
|
||
"the interpreter state. And so on."
|
||
msgstr ""
|
||
"On a déjà proposé de restreindre le GIL par interpréteur, et non plus d'être "
|
||
"complétement global ; les interpréteurs ne seraient plus en mesure de "
|
||
"partager des objets. Malheureusement, cela n'a pas beaucoup de chance non "
|
||
"plus d'arriver. Cela nécessiterait un travail considérable, car la façon "
|
||
"dont beaucoup d'objets sont implémentés rend leur état global. Par exemple, "
|
||
"les entiers et les chaînes de caractères courts sont mis en cache ; ces "
|
||
"caches devraient être déplacés au niveau de l'interpréteur. D'autres objets "
|
||
"ont leur propre liste de suppression, ces listes devraient être déplacées au "
|
||
"niveau de l'interpréteur et ainsi de suite."
|
||
|
||
#: ../Doc/faq/library.rst:436
|
||
msgid ""
|
||
"And I doubt that it can even be done in finite time, because the same "
|
||
"problem exists for 3rd party extensions. It is likely that 3rd party "
|
||
"extensions are being written at a faster rate than you can convert them to "
|
||
"store all their global state in the interpreter state."
|
||
msgstr ""
|
||
"C'est une tâche sans fin, car les extensions tierces ont le même problème, "
|
||
"et il est probable que les extensions tierces soient développées plus vite "
|
||
"qu'il ne soit possible de les corriger pour les faire stocker leur état au "
|
||
"niveau de l'interpréteur et non plus au niveau global."
|
||
|
||
#: ../Doc/faq/library.rst:441
|
||
msgid ""
|
||
"And finally, once you have multiple interpreters not sharing any state, what "
|
||
"have you gained over running each interpreter in a separate process?"
|
||
msgstr ""
|
||
"Et enfin, quel intérêt y-a t'il à avoir plusieurs interpréteurs qui ne "
|
||
"partagent pas d'état, par rapport à faire tourner chaque interpréteur dans "
|
||
"un processus différent ?"
|
||
|
||
#: ../Doc/faq/library.rst:446
|
||
msgid "Input and Output"
|
||
msgstr "Les entrées/sorties"
|
||
|
||
#: ../Doc/faq/library.rst:449
|
||
msgid "How do I delete a file? (And other file questions...)"
|
||
msgstr "Comment supprimer un fichier ? (et autres questions sur les fichiers…)"
|
||
|
||
#: ../Doc/faq/library.rst:451
|
||
msgid ""
|
||
"Use ``os.remove(filename)`` or ``os.unlink(filename)``; for documentation, "
|
||
"see the :mod:`os` module. The two functions are identical; :func:`unlink` "
|
||
"is simply the name of the Unix system call for this function."
|
||
msgstr ""
|
||
|
||
#: ../Doc/faq/library.rst:455
|
||
msgid ""
|
||
"To remove a directory, use :func:`os.rmdir`; use :func:`os.mkdir` to create "
|
||
"one. ``os.makedirs(path)`` will create any intermediate directories in "
|
||
"``path`` that don't exist. ``os.removedirs(path)`` will remove intermediate "
|
||
"directories as long as they're empty; if you want to delete an entire "
|
||
"directory tree and its contents, use :func:`shutil.rmtree`."
|
||
msgstr ""
|
||
"Utilisez :func:`os.rmdir` pour supprimer un dossier et :func:`os.mkdir` pour "
|
||
"en créer un nouveau. ``os.makedirs(chemin)`` crée les dossiers "
|
||
"intermédiaires de ``chemin`` qui n'existent pas et ``os.removedirs(chemin)`` "
|
||
"supprime les dossiers intermédiaires si ceux-ci sont vides. Pour supprimer "
|
||
"une arborescence et tout son contenu, utilisez :func:`shutil.rmtree`."
|
||
|
||
#: ../Doc/faq/library.rst:461
|
||
msgid "To rename a file, use ``os.rename(old_path, new_path)``."
|
||
msgstr ""
|
||
"``os.rename(ancien_chemin, nouveau_chemin)`` permet de renommer un fichier."
|
||
|
||
#: ../Doc/faq/library.rst:463
|
||
msgid ""
|
||
"To truncate a file, open it using ``f = open(filename, \"r+\")``, and use "
|
||
"``f.truncate(offset)``; offset defaults to the current seek position. "
|
||
"There's also ``os.ftruncate(fd, offset)`` for files opened with :func:`os."
|
||
"open`, where *fd* is the file descriptor (a small integer)."
|
||
msgstr ""
|
||
|
||
#: ../Doc/faq/library.rst:468
|
||
msgid ""
|
||
"The :mod:`shutil` module also contains a number of functions to work on "
|
||
"files including :func:`~shutil.copyfile`, :func:`~shutil.copytree`, and :"
|
||
"func:`~shutil.rmtree`."
|
||
msgstr ""
|
||
"Le module :mod:`shutil` propose aussi un grand nombre de fonctions pour "
|
||
"effectuer des opérations sur des fichiers comme :func:`~shutil.copyfile`, :"
|
||
"func:`~shutil.copytree` et :func:`~shutil.rmtree`."
|
||
|
||
#: ../Doc/faq/library.rst:474
|
||
msgid "How do I copy a file?"
|
||
msgstr "Comment copier un fichier ?"
|
||
|
||
#: ../Doc/faq/library.rst:476
|
||
msgid ""
|
||
"The :mod:`shutil` module contains a :func:`~shutil.copyfile` function. Note "
|
||
"that on MacOS 9 it doesn't copy the resource fork and Finder info."
|
||
msgstr ""
|
||
"Le module :mod:`shutil` fournit la fonction :func:`~shutil.copyfile`. Sous "
|
||
"MacOS 9, celle-ci ne copie pas le clonage de ressources ni les informations "
|
||
"du chercheur."
|
||
|
||
#: ../Doc/faq/library.rst:481
|
||
msgid "How do I read (or write) binary data?"
|
||
msgstr "Comment lire (ou écrire) des données binaires ?"
|
||
|
||
#: ../Doc/faq/library.rst:483
|
||
msgid ""
|
||
"To read or write complex binary data formats, it's best to use the :mod:"
|
||
"`struct` module. It allows you to take a string containing binary data "
|
||
"(usually numbers) and convert it to Python objects; and vice versa."
|
||
msgstr ""
|
||
"Pour lire ou écrire des formats de données complexes en binaire, il est "
|
||
"recommandé d'utiliser le module :mod:`struct`. Celui-ci permet de convertir "
|
||
"une chaîne de caractères qui contient des données binaires, souvent des "
|
||
"nombres, en objets Python, et vice-versa."
|
||
|
||
#: ../Doc/faq/library.rst:487
|
||
msgid ""
|
||
"For example, the following code reads two 2-byte integers and one 4-byte "
|
||
"integer in big-endian format from a file::"
|
||
msgstr ""
|
||
"Par exemple, le code suivant lit, depuis un fichier, deux entiers codés sur "
|
||
"2 octets et un entier codé sur 4 octets, en format gros-boutiste ::"
|
||
|
||
#: ../Doc/faq/library.rst:496
|
||
msgid ""
|
||
"The '>' in the format string forces big-endian data; the letter 'h' reads "
|
||
"one \"short integer\" (2 bytes), and 'l' reads one \"long integer\" (4 "
|
||
"bytes) from the string."
|
||
msgstr ""
|
||
"« > » dans la chaîne de formatage indique que la donnée doit être lue en "
|
||
"mode gros-boutiste, la lettre « h » indique un entier court (2 octets) et la "
|
||
"lettre « l » indique un entier long (4 octets)."
|
||
|
||
#: ../Doc/faq/library.rst:500
|
||
msgid ""
|
||
"For data that is more regular (e.g. a homogeneous list of ints or floats), "
|
||
"you can also use the :mod:`array` module."
|
||
msgstr ""
|
||
"Pour une donnée plus régulière (p. ex. une liste homogène d'entiers ou de "
|
||
"nombres à virgule flottante), il est possible d'utiliser le module :mod:"
|
||
"`array`."
|
||
|
||
#: ../Doc/faq/library.rst:505
|
||
msgid "I can't seem to use os.read() on a pipe created with os.popen(); why?"
|
||
msgstr ""
|
||
"Il me semble impossible d'utiliser ``os.read()`` sur un tube créé avec ``os."
|
||
"popen()`` ; pourquoi ?"
|
||
|
||
#: ../Doc/faq/library.rst:507
|
||
msgid ""
|
||
":func:`os.read` is a low-level function which takes a file descriptor, a "
|
||
"small integer representing the opened file. :func:`os.popen` creates a high-"
|
||
"level file object, the same type returned by the built-in :func:`open` "
|
||
"function. Thus, to read *n* bytes from a pipe *p* created with :func:`os."
|
||
"popen`, you need to use ``p.read(n)``."
|
||
msgstr ""
|
||
":func:`os.read` est une fonction de bas niveau qui prend en paramètre un "
|
||
"descripteur de fichier — un entier court qui représente le fichier ouvert. :"
|
||
"func:`os.popen` crée un objet fichier de haut niveau, du même type que celui "
|
||
"renvoyé par la fonction native :func:`open`. Par conséquent, pour lire *n* "
|
||
"octets d'un tube *p* créé avec :func:`os.popen`, il faut utiliser ``p."
|
||
"read(n)``."
|
||
|
||
#: ../Doc/faq/library.rst:515
|
||
msgid ""
|
||
"How do I run a subprocess with pipes connected to both input and output?"
|
||
msgstr ""
|
||
|
||
#: ../Doc/faq/library.rst:519
|
||
msgid "Use the :mod:`popen2` module. For example::"
|
||
msgstr ""
|
||
|
||
#: ../Doc/faq/library.rst:527
|
||
msgid ""
|
||
"Warning: in general it is unwise to do this because you can easily cause a "
|
||
"deadlock where your process is blocked waiting for output from the child "
|
||
"while the child is blocked waiting for input from you. This can be caused "
|
||
"by the parent expecting the child to output more text than it does or by "
|
||
"data being stuck in stdio buffers due to lack of flushing. The Python "
|
||
"parent can of course explicitly flush the data it sends to the child before "
|
||
"it reads any output, but if the child is a naive C program it may have been "
|
||
"written to never explicitly flush its output, even if it is interactive, "
|
||
"since flushing is normally automatic."
|
||
msgstr ""
|
||
|
||
#: ../Doc/faq/library.rst:537
|
||
msgid ""
|
||
"Note that a deadlock is also possible if you use :func:`popen3` to read "
|
||
"stdout and stderr. If one of the two is too large for the internal buffer "
|
||
"(increasing the buffer size does not help) and you ``read()`` the other one "
|
||
"first, there is a deadlock, too."
|
||
msgstr ""
|
||
|
||
#: ../Doc/faq/library.rst:542
|
||
msgid ""
|
||
"Note on a bug in popen2: unless your program calls ``wait()`` or "
|
||
"``waitpid()``, finished child processes are never removed, and eventually "
|
||
"calls to popen2 will fail because of a limit on the number of child "
|
||
"processes. Calling :func:`os.waitpid` with the :data:`os.WNOHANG` option "
|
||
"can prevent this; a good place to insert such a call would be before calling "
|
||
"``popen2`` again."
|
||
msgstr ""
|
||
|
||
#: ../Doc/faq/library.rst:548
|
||
msgid ""
|
||
"In many cases, all you really need is to run some data through a command and "
|
||
"get the result back. Unless the amount of data is very large, the easiest "
|
||
"way to do this is to write it to a temporary file and run the command with "
|
||
"that temporary file as input. The standard module :mod:`tempfile` exports "
|
||
"a :func:`~tempfile.mktemp` function to generate unique temporary file "
|
||
"names. ::"
|
||
msgstr ""
|
||
|
||
#: ../Doc/faq/library.rst:583
|
||
msgid ""
|
||
"Note that many interactive programs (e.g. vi) don't work well with pipes "
|
||
"substituted for standard input and output. You will have to use pseudo ttys "
|
||
"(\"ptys\") instead of pipes. Or you can use a Python interface to Don Libes' "
|
||
"\"expect\" library. A Python extension that interfaces to expect is called "
|
||
"\"expy\" and available from http://expectpy.sourceforge.net. A pure Python "
|
||
"solution that works like expect is `pexpect <https://pypi.python.org/pypi/"
|
||
"pexpect/>`_."
|
||
msgstr ""
|
||
|
||
#: ../Doc/faq/library.rst:592
|
||
msgid "How do I access the serial (RS232) port?"
|
||
msgstr "Comment accéder au port de transmission en série (RS-232) ?"
|
||
|
||
#: ../Doc/faq/library.rst:594
|
||
msgid "For Win32, POSIX (Linux, BSD, etc.), Jython:"
|
||
msgstr "Pour Win32, POSIX (Linux, BSD, etc.) et Jython :"
|
||
|
||
#: ../Doc/faq/library.rst:596
|
||
msgid "http://pyserial.sourceforge.net"
|
||
msgstr "http://pyserial.sourceforge.net"
|
||
|
||
#: ../Doc/faq/library.rst:598
|
||
msgid "For Unix, see a Usenet post by Mitch Chapman:"
|
||
msgstr ""
|
||
"Pour Unix, référez-vous à une publication sur Usenet de Mitch Chapman :"
|
||
|
||
#: ../Doc/faq/library.rst:600
|
||
msgid "https://groups.google.com/groups?selm=34A04430.CF9@ohioee.com"
|
||
msgstr "https://groups.google.com/groups?selm=34A04430.CF9@ohioee.com"
|
||
|
||
#: ../Doc/faq/library.rst:604
|
||
msgid "Why doesn't closing sys.stdout (stdin, stderr) really close it?"
|
||
msgstr ""
|
||
"Pourquoi fermer *sys.stdout*, *sys.stdin*, *sys.stderr* ne les ferme pas "
|
||
"réellement ?"
|
||
|
||
#: ../Doc/faq/library.rst:606
|
||
msgid ""
|
||
"Python file objects are a high-level layer of abstraction on top of C "
|
||
"streams, which in turn are a medium-level layer of abstraction on top of "
|
||
"(among other things) low-level C file descriptors."
|
||
msgstr ""
|
||
|
||
#: ../Doc/faq/library.rst:610
|
||
msgid ""
|
||
"For most file objects you create in Python via the built-in ``file`` "
|
||
"constructor, ``f.close()`` marks the Python file object as being closed from "
|
||
"Python's point of view, and also arranges to close the underlying C stream. "
|
||
"This also happens automatically in ``f``'s destructor, when ``f`` becomes "
|
||
"garbage."
|
||
msgstr ""
|
||
|
||
#: ../Doc/faq/library.rst:616
|
||
msgid ""
|
||
"But stdin, stdout and stderr are treated specially by Python, because of the "
|
||
"special status also given to them by C. Running ``sys.stdout.close()`` "
|
||
"marks the Python-level file object as being closed, but does *not* close the "
|
||
"associated C stream."
|
||
msgstr ""
|
||
|
||
#: ../Doc/faq/library.rst:621
|
||
msgid ""
|
||
"To close the underlying C stream for one of these three, you should first be "
|
||
"sure that's what you really want to do (e.g., you may confuse extension "
|
||
"modules trying to do I/O). If it is, use os.close::"
|
||
msgstr ""
|
||
|
||
#: ../Doc/faq/library.rst:631
|
||
msgid "Network/Internet Programming"
|
||
msgstr "Programmation réseau et Internet"
|
||
|
||
#: ../Doc/faq/library.rst:634
|
||
msgid "What WWW tools are there for Python?"
|
||
msgstr "Quels sont les outils Python dédiés à la Toile ?"
|
||
|
||
#: ../Doc/faq/library.rst:636
|
||
msgid ""
|
||
"See the chapters titled :ref:`internet` and :ref:`netdata` in the Library "
|
||
"Reference Manual. Python has many modules that will help you build server-"
|
||
"side and client-side web systems."
|
||
msgstr ""
|
||
"Référez-vous aux chapitres intitulés :ref:`internet` et :ref:`netdata` dans "
|
||
"le manuel de référence de la bibliothèque. Python a de nombreux modules pour "
|
||
"construire des applications de Toile côté client comme côté serveur."
|
||
|
||
#: ../Doc/faq/library.rst:642
|
||
msgid ""
|
||
"A summary of available frameworks is maintained by Paul Boddie at https://"
|
||
"wiki.python.org/moin/WebProgramming\\ ."
|
||
msgstr ""
|
||
"Un résumé des cadriciels disponibles est maintenu par Paul Boddie à "
|
||
"l'adresse https://wiki.python.org/moin/WebProgramming\\ ."
|
||
|
||
#: ../Doc/faq/library.rst:645
|
||
msgid ""
|
||
"Cameron Laird maintains a useful set of pages about Python web technologies "
|
||
"at http://phaseit.net/claird/comp.lang.python/web_python."
|
||
msgstr ""
|
||
"Cameron Laird maintient un ensemble intéressant d'articles sur les "
|
||
"technologies Python dédiées à la Toile à l'adresse http://phaseit.net/claird/"
|
||
"comp.lang.python/web_python."
|
||
|
||
#: ../Doc/faq/library.rst:650
|
||
msgid "How can I mimic CGI form submission (METHOD=POST)?"
|
||
msgstr "Comment reproduire un envoi de formulaire CGI (METHOD=POST) ?"
|
||
|
||
#: ../Doc/faq/library.rst:652
|
||
msgid ""
|
||
"I would like to retrieve web pages that are the result of POSTing a form. Is "
|
||
"there existing code that would let me do this easily?"
|
||
msgstr ""
|
||
"J'aimerais récupérer la page de retour d'un envoi de formulaire sur la "
|
||
"Toile. Existe-t'il déjà du code qui pourrait m'aider à le faire facilement ?"
|
||
|
||
#: ../Doc/faq/library.rst:655
|
||
msgid "Yes. Here's a simple example that uses httplib::"
|
||
msgstr ""
|
||
|
||
#: ../Doc/faq/library.rst:679
|
||
msgid ""
|
||
"Note that in general for percent-encoded POST operations, query strings must "
|
||
"be quoted using :func:`urllib.urlencode`. For example, to send ``name=Guy "
|
||
"Steele, Jr.``::"
|
||
msgstr ""
|
||
|
||
#: ../Doc/faq/library.rst:689
|
||
msgid "What module should I use to help with generating HTML?"
|
||
msgstr "Quel module utiliser pour générer du HTML ?"
|
||
|
||
#: ../Doc/faq/library.rst:693
|
||
msgid ""
|
||
"You can find a collection of useful links on the `Web Programming wiki page "
|
||
"<https://wiki.python.org/moin/WebProgramming>`_."
|
||
msgstr ""
|
||
"La `page wiki de la programmation Toile <https://wiki.python.org/moin/"
|
||
"WebProgramming>`_ (en anglais) répertorie un ensemble de liens pertinents."
|
||
|
||
#: ../Doc/faq/library.rst:698
|
||
msgid "How do I send mail from a Python script?"
|
||
msgstr "Comment envoyer un courriel avec un script Python ?"
|
||
|
||
#: ../Doc/faq/library.rst:700
|
||
msgid "Use the standard library module :mod:`smtplib`."
|
||
msgstr "Utilisez le module :mod:`smtplib` de la bibliothèque standard."
|
||
|
||
#: ../Doc/faq/library.rst:702
|
||
msgid ""
|
||
"Here's a very simple interactive mail sender that uses it. This method will "
|
||
"work on any host that supports an SMTP listener. ::"
|
||
msgstr ""
|
||
"Voici un exemple très simple d'un envoyeur de courriel qui l'utilise. Cette "
|
||
"méthode fonctionne sur tous les serveurs qui implémentent SMTP. ::"
|
||
|
||
#: ../Doc/faq/library.rst:722
|
||
msgid ""
|
||
"A Unix-only alternative uses sendmail. The location of the sendmail program "
|
||
"varies between systems; sometimes it is ``/usr/lib/sendmail``, sometimes ``/"
|
||
"usr/sbin/sendmail``. The sendmail manual page will help you out. Here's "
|
||
"some sample code::"
|
||
msgstr ""
|
||
"Sous Unix, il est possible d'utiliser *sendmail*. La localisation de "
|
||
"l'exécutable *sendmail* dépend du système ; cela peut-être ``/usr/lib/"
|
||
"sendmail`` ou ``/usr/sbin/sendmail``, la page de manuel de *sendmail* peut "
|
||
"vous aider. Par exemple ::"
|
||
|
||
#: ../Doc/faq/library.rst:742
|
||
msgid "How do I avoid blocking in the connect() method of a socket?"
|
||
msgstr ""
|
||
"Comment éviter de bloquer dans la méthode ``connect()`` d'un connecteur "
|
||
"réseau ?"
|
||
|
||
#: ../Doc/faq/library.rst:744
|
||
msgid ""
|
||
"The select module is commonly used to help with asynchronous I/O on sockets."
|
||
msgstr ""
|
||
|
||
#: ../Doc/faq/library.rst:746
|
||
msgid ""
|
||
"To prevent the TCP connect from blocking, you can set the socket to non-"
|
||
"blocking mode. Then when you do the ``connect()``, you will either connect "
|
||
"immediately (unlikely) or get an exception that contains the error number as "
|
||
"``.errno``. ``errno.EINPROGRESS`` indicates that the connection is in "
|
||
"progress, but hasn't finished yet. Different OSes will return different "
|
||
"values, so you're going to have to check what's returned on your system."
|
||
msgstr ""
|
||
"Pour empêcher une connexion TCP de se bloquer, il est possible de mettre le "
|
||
"connecteur en mode lecture seule. Avec cela, au moment du ``connect()``, la "
|
||
"connexion pourra être immédiate (peu probable) ou bien vous obtiendrez une "
|
||
"exception qui contient le numéro d'erreur dans ``.errno``. ``errno."
|
||
"EINPROGRESS`` indique que la connexion est en cours, mais qu'elle n'a pas "
|
||
"encore aboutie. La valeur dépend du système d'exploitation, donc renseignez-"
|
||
"vous sur la valeur utilisée par votre système."
|
||
|
||
#: ../Doc/faq/library.rst:753
|
||
msgid ""
|
||
"You can use the ``connect_ex()`` method to avoid creating an exception. It "
|
||
"will just return the errno value. To poll, you can call ``connect_ex()`` "
|
||
"again later -- 0 or ``errno.EISCONN`` indicate that you're connected -- or "
|
||
"you can pass this socket to select to check if it's writable."
|
||
msgstr ""
|
||
|
||
#: ../Doc/faq/library.rst:760
|
||
msgid "Databases"
|
||
msgstr "Bases de données"
|
||
|
||
#: ../Doc/faq/library.rst:763
|
||
msgid "Are there any interfaces to database packages in Python?"
|
||
msgstr ""
|
||
"Existe-t'il des modules Python pour s'interfacer avec des bases de données ?"
|
||
|
||
#: ../Doc/faq/library.rst:765
|
||
msgid "Yes."
|
||
msgstr "Oui."
|
||
|
||
#: ../Doc/faq/library.rst:769
|
||
msgid ""
|
||
"Python 2.3 includes the :mod:`bsddb` package which provides an interface to "
|
||
"the BerkeleyDB library. Interfaces to disk-based hashes such as :mod:`DBM "
|
||
"<dbm>` and :mod:`GDBM <gdbm>` are also included with standard Python."
|
||
msgstr ""
|
||
|
||
#: ../Doc/faq/library.rst:773
|
||
msgid ""
|
||
"Support for most relational databases is available. See the "
|
||
"`DatabaseProgramming wiki page <https://wiki.python.org/moin/"
|
||
"DatabaseProgramming>`_ for details."
|
||
msgstr ""
|
||
"La gestion de la plupart des bases de données relationnelles est assurée. "
|
||
"Voir la page wiki `DatabaseProgramming <https://wiki.python.org/moin/"
|
||
"DatabaseProgramming>`_ pour plus de détails."
|
||
|
||
#: ../Doc/faq/library.rst:779
|
||
msgid "How do you implement persistent objects in Python?"
|
||
msgstr "Comment implémenter la persistance d'objets en Python ?"
|
||
|
||
#: ../Doc/faq/library.rst:781
|
||
msgid ""
|
||
"The :mod:`pickle` library module solves this in a very general way (though "
|
||
"you still can't store things like open files, sockets or windows), and the :"
|
||
"mod:`shelve` library module uses pickle and (g)dbm to create persistent "
|
||
"mappings containing arbitrary Python objects. For better performance, you "
|
||
"can use the :mod:`cPickle` module."
|
||
msgstr ""
|
||
|
||
#: ../Doc/faq/library.rst:787
|
||
msgid ""
|
||
"A more awkward way of doing things is to use pickle's little sister, "
|
||
"marshal. The :mod:`marshal` module provides very fast ways to store "
|
||
"noncircular basic Python types to files and strings, and back again. "
|
||
"Although marshal does not do fancy things like store instances or handle "
|
||
"shared references properly, it does run extremely fast. For example, "
|
||
"loading a half megabyte of data may take less than a third of a second. "
|
||
"This often beats doing something more complex and general such as using gdbm "
|
||
"with pickle/shelve."
|
||
msgstr ""
|
||
|
||
#: ../Doc/faq/library.rst:797
|
||
msgid "Why is cPickle so slow?"
|
||
msgstr ""
|
||
|
||
#: ../Doc/faq/library.rst:801
|
||
msgid ""
|
||
"By default :mod:`pickle` uses a relatively old and slow format for backward "
|
||
"compatibility. You can however specify other protocol versions that are "
|
||
"faster::"
|
||
msgstr ""
|
||
|
||
#: ../Doc/faq/library.rst:810
|
||
msgid ""
|
||
"If my program crashes with a bsddb (or anydbm) database open, it gets "
|
||
"corrupted. How come?"
|
||
msgstr ""
|
||
|
||
#: ../Doc/faq/library.rst:812
|
||
msgid ""
|
||
"Databases opened for write access with the bsddb module (and often by the "
|
||
"anydbm module, since it will preferentially use bsddb) must explicitly be "
|
||
"closed using the ``.close()`` method of the database. The underlying "
|
||
"library caches database contents which need to be converted to on-disk form "
|
||
"and written."
|
||
msgstr ""
|
||
|
||
#: ../Doc/faq/library.rst:817
|
||
msgid ""
|
||
"If you have initialized a new bsddb database but not written anything to it "
|
||
"before the program crashes, you will often wind up with a zero-length file "
|
||
"and encounter an exception the next time the file is opened."
|
||
msgstr ""
|
||
|
||
#: ../Doc/faq/library.rst:823
|
||
msgid ""
|
||
"I tried to open Berkeley DB file, but bsddb produces bsddb.error: (22, "
|
||
"'Invalid argument'). Help! How can I restore my data?"
|
||
msgstr ""
|
||
|
||
#: ../Doc/faq/library.rst:825
|
||
msgid ""
|
||
"Don't panic! Your data is probably intact. The most frequent cause for the "
|
||
"error is that you tried to open an earlier Berkeley DB file with a later "
|
||
"version of the Berkeley DB library."
|
||
msgstr ""
|
||
|
||
#: ../Doc/faq/library.rst:829
|
||
msgid ""
|
||
"Many Linux systems now have all three versions of Berkeley DB available. If "
|
||
"you are migrating from version 1 to a newer version use db_dump185 to dump a "
|
||
"plain text version of the database. If you are migrating from version 2 to "
|
||
"version 3 use db2_dump to create a plain text version of the database. In "
|
||
"either case, use db_load to create a new native database for the latest "
|
||
"version installed on your computer. If you have version 3 of Berkeley DB "
|
||
"installed, you should be able to use db2_load to create a native version 2 "
|
||
"database."
|
||
msgstr ""
|
||
|
||
#: ../Doc/faq/library.rst:837
|
||
msgid ""
|
||
"You should move away from Berkeley DB version 1 files because the hash file "
|
||
"code contains known bugs that can corrupt your data."
|
||
msgstr ""
|
||
|
||
#: ../Doc/faq/library.rst:842
|
||
msgid "Mathematics and Numerics"
|
||
msgstr "Mathématiques et calcul numérique"
|
||
|
||
#: ../Doc/faq/library.rst:845
|
||
msgid "How do I generate random numbers in Python?"
|
||
msgstr "Comment générer des nombres aléatoires en Python ?"
|
||
|
||
#: ../Doc/faq/library.rst:847
|
||
msgid ""
|
||
"The standard module :mod:`random` implements a random number generator. "
|
||
"Usage is simple::"
|
||
msgstr ""
|
||
"Le module :mod:`random` de la bibliothèque standard comprend un générateur "
|
||
"de nombres aléatoires. Son utilisation est simple ::"
|
||
|
||
#: ../Doc/faq/library.rst:853
|
||
msgid "This returns a random floating point number in the range [0, 1)."
|
||
msgstr ""
|
||
"Le code précédent renvoie un nombre à virgule flottante aléatoire dans "
|
||
"l'intervalle [0, 1[."
|
||
|
||
#: ../Doc/faq/library.rst:855
|
||
msgid ""
|
||
"There are also many other specialized generators in this module, such as:"
|
||
msgstr "Ce module fournit beaucoup d'autres générateurs spécialisés comme :"
|
||
|
||
#: ../Doc/faq/library.rst:857
|
||
msgid "``randrange(a, b)`` chooses an integer in the range [a, b)."
|
||
msgstr "``randrange(a, b)`` génère un entier dans l'intervalle [a, b[."
|
||
|
||
#: ../Doc/faq/library.rst:858
|
||
msgid "``uniform(a, b)`` chooses a floating point number in the range [a, b)."
|
||
msgstr ""
|
||
"``uniform(a, b)`` génère un nombre à virgule flottante aléatoire dans "
|
||
"l'intervalle [a, b[."
|
||
|
||
#: ../Doc/faq/library.rst:859
|
||
msgid ""
|
||
"``normalvariate(mean, sdev)`` samples the normal (Gaussian) distribution."
|
||
msgstr "``normalvariate(mean, sdev)`` simule la loi normale (Gaussienne)."
|
||
|
||
#: ../Doc/faq/library.rst:861
|
||
msgid "Some higher-level functions operate on sequences directly, such as:"
|
||
msgstr ""
|
||
"Des fonctions de haut niveau opèrent directement sur des séquences comme :"
|
||
|
||
#: ../Doc/faq/library.rst:863
|
||
msgid "``choice(S)`` chooses random element from a given sequence"
|
||
msgstr "``choice(S)`` sélectionne au hasard un élément d'une séquence donnée"
|
||
|
||
#: ../Doc/faq/library.rst:864
|
||
msgid "``shuffle(L)`` shuffles a list in-place, i.e. permutes it randomly"
|
||
msgstr ""
|
||
"``shuffle(L)`` mélange une liste en-place, c-à-d lui applique une "
|
||
"permutation aléatoire"
|
||
|
||
#: ../Doc/faq/library.rst:866
|
||
msgid ""
|
||
"There's also a ``Random`` class you can instantiate to create independent "
|
||
"multiple random number generators."
|
||
msgstr ""
|
||
"Il existe aussi une classe ``Random`` qu'il est possible d'instancier pour "
|
||
"créer des générateurs aléatoires indépendants."
|