forked from AFPy/python-docs-fr
Backport from 3.8
This commit is contained in:
parent
dc5751cce1
commit
f1d4ff76d1
|
@ -18,7 +18,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/distutils/packageindex.rst:9
|
||||
msgid "The Python Package Index (PyPI)"
|
||||
msgstr ""
|
||||
msgstr "L'index de paquets Python (*Python Package Index* : PyPI)"
|
||||
|
||||
#: ../Doc/distutils/packageindex.rst:11
|
||||
msgid ""
|
||||
|
|
|
@ -380,7 +380,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/distutils/setupscript.rst:335
|
||||
msgid "Other options"
|
||||
msgstr ""
|
||||
msgstr "Autres options"
|
||||
|
||||
#: ../Doc/distutils/setupscript.rst:337
|
||||
msgid ""
|
||||
|
|
|
@ -541,13 +541,16 @@ msgstr ""
|
|||
|
||||
#: ../Doc/extending/extending.rst:309
|
||||
msgid "The Module's Method Table and Initialization Function"
|
||||
msgstr ""
|
||||
msgstr "La fonction d'initialisation et le tableau des méthodes du module"
|
||||
|
||||
#: ../Doc/extending/extending.rst:311
|
||||
msgid ""
|
||||
"I promised to show how :c:func:`spam_system` is called from Python programs. "
|
||||
"First, we need to list its name and address in a \"method table\"::"
|
||||
msgstr ""
|
||||
"Nous avons promis de montrer comment :c:func:`spam_system` est appelée "
|
||||
"depuis les programmes Python. D'abord, nous avons besoin d'avoir son nom et "
|
||||
"son adresse dans un « tableau des méthodes » ::"
|
||||
|
||||
#: ../Doc/extending/extending.rst:322
|
||||
msgid ""
|
||||
|
@ -557,6 +560,11 @@ msgid ""
|
|||
"value of ``0`` means that an obsolete variant of :c:func:`PyArg_ParseTuple` "
|
||||
"is used."
|
||||
msgstr ""
|
||||
"Notez la troisième entrée (``METH_VARARGS``). C'est un indicateur du type de "
|
||||
"convention à utiliser pour la fonction C, à destination de l'interpréteur. "
|
||||
"Il doit valoir normalement ``METH_VARARGS`` ou ``METH_VARARGS | "
|
||||
"METH_KEYWORDS`` ; la valeur ``0`` indique qu'une variante obsolète de :c:"
|
||||
"func:`PyArg_ParseTuple` est utilisée."
|
||||
|
||||
#: ../Doc/extending/extending.rst:327
|
||||
msgid ""
|
||||
|
@ -564,6 +572,10 @@ msgid ""
|
|||
"level parameters to be passed in as a tuple acceptable for parsing via :c:"
|
||||
"func:`PyArg_ParseTuple`; more information on this function is provided below."
|
||||
msgstr ""
|
||||
"Si seulement ``METH_VARARGS`` est utilisé, la fonction s'attend à ce que les "
|
||||
"paramètres Python soient passés comme un n-uplet que l'on peut analyser "
|
||||
"*via* :c:func:`PyArg_ParseTuple` ; des informations supplémentaires sont "
|
||||
"fournies plus bas."
|
||||
|
||||
#: ../Doc/extending/extending.rst:331
|
||||
msgid ""
|
||||
|
@ -573,6 +585,11 @@ msgid ""
|
|||
"keywords. Use :c:func:`PyArg_ParseTupleAndKeywords` to parse the arguments "
|
||||
"to such a function."
|
||||
msgstr ""
|
||||
"Le bit :const:`METH_KEYWORDS` peut être mis à un dans le troisième champ si "
|
||||
"des arguments par mot-clés doivent être passés à la fonction. Dans ce cas, "
|
||||
"la fonction C doit accepter un troisième paramètre ``PyObject *`` qui est un "
|
||||
"dictionnaire des mots-clés. Utilisez :c:func:`PyArg_ParseTupleAndKeywords` "
|
||||
"pour analyser les arguments d'une telle fonction."
|
||||
|
||||
#: ../Doc/extending/extending.rst:337
|
||||
msgid ""
|
||||
|
|
124
faq/extending.po
124
faq/extending.po
|
@ -30,10 +30,15 @@ msgid ""
|
|||
"exceptions and even new types in C. This is explained in the document :ref:"
|
||||
"`extending-index`."
|
||||
msgstr ""
|
||||
"Oui, vous pouvez créer des modules intégrés contenant des fonctions, des "
|
||||
"variables, des exceptions et même de nouveaux types en C. Ceci est expliqué "
|
||||
"dans le document :ref:`extending-index`."
|
||||
|
||||
#: ../Doc/faq/extending.rst:19
|
||||
msgid "Most intermediate or advanced Python books will also cover this topic."
|
||||
msgstr ""
|
||||
"La plupart des livres Python intermédiaires ou avancés couvrent également ce "
|
||||
"sujet."
|
||||
|
||||
#: ../Doc/faq/extending.rst:23
|
||||
msgid "Can I create my own functions in C++?"
|
||||
|
@ -96,6 +101,7 @@ msgstr ""
|
|||
#: ../Doc/faq/extending.rst:64
|
||||
msgid "How can I execute arbitrary Python statements from C?"
|
||||
msgstr ""
|
||||
"Comment puis-je exécuter des instructions quelconques Python à partir de C ?"
|
||||
|
||||
#: ../Doc/faq/extending.rst:66
|
||||
msgid ""
|
||||
|
@ -110,6 +116,7 @@ msgstr ""
|
|||
#: ../Doc/faq/extending.rst:75
|
||||
msgid "How can I evaluate an arbitrary Python expression from C?"
|
||||
msgstr ""
|
||||
"Comment puis-je évaluer une expression quelconque de Python à partir de C ?"
|
||||
|
||||
#: ../Doc/faq/extending.rst:77
|
||||
msgid ""
|
||||
|
@ -117,10 +124,13 @@ msgid ""
|
|||
"start symbol :c:data:`Py_eval_input`; it parses an expression, evaluates it "
|
||||
"and returns its value."
|
||||
msgstr ""
|
||||
"Appelez la fonction :c:func:`PyRun_String` de la question précédente avec le "
|
||||
"symbole de départ :c:data:`Py_eval_input` ; il analyse une expression, "
|
||||
"l'évalue et renvoie sa valeur."
|
||||
|
||||
#: ../Doc/faq/extending.rst:83
|
||||
msgid "How do I extract C values from a Python object?"
|
||||
msgstr ""
|
||||
msgstr "Comment puis-je extraire des donnés en C d'un objet Python ?"
|
||||
|
||||
#: ../Doc/faq/extending.rst:85
|
||||
msgid ""
|
||||
|
@ -129,6 +139,10 @@ msgid ""
|
|||
"specified index. Lists have similar functions, :c:func:`PyListSize` and :c:"
|
||||
"func:`PyList_GetItem`."
|
||||
msgstr ""
|
||||
"Cela dépend du type d'objet. Si c'est un tuple, :c:func:`PyTuple_Size` "
|
||||
"renvoie sa longueur et :c:func:`PyTuple_GetItem` renvoie l'élément à l'index "
|
||||
"spécifié. Les listes ont des fonctions similaires, :c:func:`PyListSize` et :"
|
||||
"c:func:`PyList_GetItem`."
|
||||
|
||||
#: ../Doc/faq/extending.rst:90
|
||||
msgid ""
|
||||
|
@ -156,6 +170,7 @@ msgstr ""
|
|||
#: ../Doc/faq/extending.rst:105
|
||||
msgid "How do I use Py_BuildValue() to create a tuple of arbitrary length?"
|
||||
msgstr ""
|
||||
"Comment utiliser Py_BuildValue() pour créer un tuple de longueur définie ?"
|
||||
|
||||
#: ../Doc/faq/extending.rst:107
|
||||
msgid ""
|
||||
|
@ -170,7 +185,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/faq/extending.rst:116
|
||||
msgid "How do I call an object's method from C?"
|
||||
msgstr ""
|
||||
msgstr "Comment puis-je appeler la méthode d'un objet à partir de C ?"
|
||||
|
||||
#: ../Doc/faq/extending.rst:118
|
||||
msgid ""
|
||||
|
@ -179,6 +194,10 @@ msgid ""
|
|||
"to call, a format string like that used with :c:func:`Py_BuildValue`, and "
|
||||
"the argument values::"
|
||||
msgstr ""
|
||||
"La fonction :c:func:`PyObject_CallMethod` peut être utilisée pour appeler la "
|
||||
"méthode d'un objet. Les paramètres sont l'objet, le nom de la méthode à "
|
||||
"appeler, une chaîne de caractères comme celle utilisée pour :c:func:"
|
||||
"`Py_BuildValue` et les valeurs des arguments ::"
|
||||
|
||||
#: ../Doc/faq/extending.rst:127
|
||||
msgid ""
|
||||
|
@ -186,12 +205,17 @@ msgid ""
|
|||
"defined. You are responsible for eventually :c:func:`Py_DECREF`\\ 'ing the "
|
||||
"return value."
|
||||
msgstr ""
|
||||
"Cela fonctionne pour tous les objets qui ont des méthodes — qu'elles soient "
|
||||
"intégrées ou définies par l'utilisateur. Vous êtes responsable de « :c:func:"
|
||||
"`Py_DECREF`\\ *er* » la valeur de retour à la fin."
|
||||
|
||||
#: ../Doc/faq/extending.rst:130
|
||||
msgid ""
|
||||
"To call, e.g., a file object's \"seek\" method with arguments 10, 0 "
|
||||
"(assuming the file object pointer is \"f\")::"
|
||||
msgstr ""
|
||||
"Pour appeler, p. ex., la méthode *seek* d'un objet *file* avec les arguments "
|
||||
"10, 0 (en supposant que le pointeur de l'objet fichier est *f*) ::"
|
||||
|
||||
#: ../Doc/faq/extending.rst:141
|
||||
msgid ""
|
||||
|
@ -200,12 +224,18 @@ msgid ""
|
|||
"format, and to call a function with one argument, surround the argument in "
|
||||
"parentheses, e.g. \"(i)\"."
|
||||
msgstr ""
|
||||
"Notez que :c:func:`PyObject_CallObject` veut *toujours* un tuple comme liste "
|
||||
"d'arguments. Aussi, pour appeler une fonction sans arguments, utilisez "
|
||||
"\"()\" pour être conforme au type et, pour appeler une fonction avec un "
|
||||
"paramètre, entourez-le de parenthèses, p. ex. \"(i)\"."
|
||||
|
||||
#: ../Doc/faq/extending.rst:148
|
||||
msgid ""
|
||||
"How do I catch the output from PyErr_Print() (or anything that prints to "
|
||||
"stdout/stderr)?"
|
||||
msgstr ""
|
||||
"Comment puis-je récupérer la sortie de ``PyErr_Print()`` (ou tout ce qui "
|
||||
"s'affiche sur *stdout*/*stderr*) ?"
|
||||
|
||||
#: ../Doc/faq/extending.rst:150
|
||||
msgid ""
|
||||
|
@ -214,6 +244,11 @@ msgid ""
|
|||
"print_error, or just allow the standard traceback mechanism to work. Then, "
|
||||
"the output will go wherever your ``write()`` method sends it."
|
||||
msgstr ""
|
||||
"Dans le code Python, définissez un objet qui possède la méthode ``write()``. "
|
||||
"Affectez cet objet à :data:`sys.stdout` et :data:`sys.stderr`. Appelez "
|
||||
"*print_error* ou faites simplement en sorte que le mécanisme standard de "
|
||||
"remontée des erreurs fonctionne. Ensuite, la sortie sera dirigée vers "
|
||||
"l'endroit où votre méthode ``write()`` écrit."
|
||||
|
||||
#: ../Doc/faq/extending.rst:155
|
||||
msgid ""
|
||||
|
@ -227,11 +262,11 @@ msgstr ""
|
|||
|
||||
#: ../Doc/faq/extending.rst:177
|
||||
msgid "How do I access a module written in Python from C?"
|
||||
msgstr ""
|
||||
msgstr "Comment accéder à un module écrit en Python à partir de C ?"
|
||||
|
||||
#: ../Doc/faq/extending.rst:179
|
||||
msgid "You can get a pointer to the module object as follows::"
|
||||
msgstr ""
|
||||
msgstr "Vous pouvez obtenir un pointeur sur l'objet module comme suit ::"
|
||||
|
||||
#: ../Doc/faq/extending.rst:183
|
||||
msgid ""
|
||||
|
@ -241,22 +276,32 @@ msgid ""
|
|||
"module into any namespace -- it only ensures it has been initialized and is "
|
||||
"stored in :data:`sys.modules`."
|
||||
msgstr ""
|
||||
"Si le module n'a pas encore été importé (c.-à-d. qu'il n'est pas encore "
|
||||
"présent dans :data:`sys.modules`), cela initialise le module ; sinon il "
|
||||
"renvoie simplement la valeur de ``sys.modules[\"<modulename>\"]``. Notez "
|
||||
"qu'il n'inscrit le module dans aucun espace de nommage — il s'assure "
|
||||
"seulement qu'il a été initialisé et qu'il est stocké dans :data:`sys."
|
||||
"modules`."
|
||||
|
||||
#: ../Doc/faq/extending.rst:189
|
||||
msgid ""
|
||||
"You can then access the module's attributes (i.e. any name defined in the "
|
||||
"module) as follows::"
|
||||
msgstr ""
|
||||
"Vous pouvez alors accéder aux attributs du module (c.-à-d. à tout nom défini "
|
||||
"dans le module) comme suit ::"
|
||||
|
||||
#: ../Doc/faq/extending.rst:194
|
||||
msgid ""
|
||||
"Calling :c:func:`PyObject_SetAttrString` to assign to variables in the "
|
||||
"module also works."
|
||||
msgstr ""
|
||||
"Appeler :c:func:`PyObject_SetAttrString` pour assigner des valeurs aux "
|
||||
"variables du module fonctionne également."
|
||||
|
||||
#: ../Doc/faq/extending.rst:199
|
||||
msgid "How do I interface to C++ objects from Python?"
|
||||
msgstr ""
|
||||
msgstr "Comment s'interfacer avec les objets C++ depuis Python ?"
|
||||
|
||||
#: ../Doc/faq/extending.rst:201
|
||||
msgid ""
|
||||
|
@ -267,14 +312,22 @@ msgid ""
|
|||
"building a new Python type around a C structure (pointer) type will also "
|
||||
"work for C++ objects."
|
||||
msgstr ""
|
||||
"Selon vos besoins, de nombreuses approches sont possibles. Pour le faire "
|
||||
"manuellement, commencez par lire :ref:`le document \"Extension et intégration"
|
||||
"\" <extending-index>`. Sachez que pour le système d'exécution Python, il n'y "
|
||||
"a pas beaucoup de différence entre C et C++ — donc la méthode pour "
|
||||
"construire un nouveau type Python à partir d'une structure C (pointeur) "
|
||||
"fonctionne également avec des objets en C++."
|
||||
|
||||
#: ../Doc/faq/extending.rst:207
|
||||
msgid "For C++ libraries, see :ref:`c-wrapper-software`."
|
||||
msgstr ""
|
||||
msgstr "Pour les bibliothèques C++, voir :ref:`c-wrapper-software`."
|
||||
|
||||
#: ../Doc/faq/extending.rst:211
|
||||
msgid "I added a module using the Setup file and the make fails; why?"
|
||||
msgstr ""
|
||||
"J'ai ajouté un module en utilisant le fichier *Setup* et la compilation "
|
||||
"échoue ; pourquoi ?"
|
||||
|
||||
#: ../Doc/faq/extending.rst:213
|
||||
msgid ""
|
||||
|
@ -282,30 +335,40 @@ msgid ""
|
|||
"fails. (Fixing this requires some ugly shell script hackery, and this bug "
|
||||
"is so minor that it doesn't seem worth the effort.)"
|
||||
msgstr ""
|
||||
"Le fichier *Setup* doit se terminer par une ligne vide, s'il n'y a pas de "
|
||||
"ligne vide, le processus de compilation échoue (ce problème peut se régler "
|
||||
"en bidouillant un script shell, et ce bogue est si mineur qu'il ne mérite "
|
||||
"pas qu'on s'y attarde)."
|
||||
|
||||
#: ../Doc/faq/extending.rst:219
|
||||
msgid "How do I debug an extension?"
|
||||
msgstr ""
|
||||
msgstr "Comment déboguer une extension ?"
|
||||
|
||||
#: ../Doc/faq/extending.rst:221
|
||||
msgid ""
|
||||
"When using GDB with dynamically loaded extensions, you can't set a "
|
||||
"breakpoint in your extension until your extension is loaded."
|
||||
msgstr ""
|
||||
"Lorsque vous utilisez GDB avec des extensions chargées dynamiquement, vous "
|
||||
"ne pouvez pas placer de point d'arrêt dans votre extension tant que celle-ci "
|
||||
"n'est pas chargée."
|
||||
|
||||
#: ../Doc/faq/extending.rst:224
|
||||
msgid "In your ``.gdbinit`` file (or interactively), add the command:"
|
||||
msgstr ""
|
||||
"Dans votre fichier ``.gdbinit`` (ou manuellement), ajoutez la commande :"
|
||||
|
||||
#: ../Doc/faq/extending.rst:230
|
||||
msgid "Then, when you run GDB:"
|
||||
msgstr ""
|
||||
msgstr "Ensuite, lorsque vous exécutez GDB :"
|
||||
|
||||
#: ../Doc/faq/extending.rst:242
|
||||
msgid ""
|
||||
"I want to compile a Python module on my Linux system, but some files are "
|
||||
"missing. Why?"
|
||||
msgstr ""
|
||||
"Je veux compiler un module Python sur mon système Linux, mais il manque "
|
||||
"certains fichiers. Pourquoi ?"
|
||||
|
||||
#: ../Doc/faq/extending.rst:244
|
||||
msgid ""
|
||||
|
@ -313,14 +376,19 @@ msgid ""
|
|||
"{x}/config/` directory, which contains various files required for compiling "
|
||||
"Python extensions."
|
||||
msgstr ""
|
||||
"La plupart des versions pré-compilées de Python n'incluent pas le "
|
||||
"répertoire :file:`/usr/lib/python2.{x}/config/`, qui contient les différents "
|
||||
"fichiers nécessaires à la compilation des extensions Python."
|
||||
|
||||
#: ../Doc/faq/extending.rst:248
|
||||
msgid "For Red Hat, install the python-devel RPM to get the necessary files."
|
||||
msgstr ""
|
||||
"Pour Red Hat, installez le RPM *python-devel* pour obtenir les fichiers "
|
||||
"nécessaires."
|
||||
|
||||
#: ../Doc/faq/extending.rst:250
|
||||
msgid "For Debian, run ``apt-get install python-dev``."
|
||||
msgstr ""
|
||||
msgstr "Pour Debian, exécutez ``apt-get install python-dev``."
|
||||
|
||||
#: ../Doc/faq/extending.rst:254
|
||||
msgid ""
|
||||
|
@ -347,6 +415,8 @@ msgstr ""
|
|||
#: ../Doc/faq/extending.rst:268
|
||||
msgid "How do I tell \"incomplete input\" from \"invalid input\"?"
|
||||
msgstr ""
|
||||
"Comment distinguer une « entrée incomplète » (*incomplete input*) d'une "
|
||||
"« entrée invalide » (*invalid input*) ?"
|
||||
|
||||
#: ../Doc/faq/extending.rst:270
|
||||
msgid ""
|
||||
|
@ -356,12 +426,19 @@ msgid ""
|
|||
"parentheses or triple string quotes), but it gives you a syntax error "
|
||||
"message immediately when the input is invalid."
|
||||
msgstr ""
|
||||
"Parfois vous souhaitez émuler le comportement de l'interpréteur interactif "
|
||||
"Python, quand il vous donne une invite de continuation lorsque l'entrée est "
|
||||
"incomplète (par exemple, vous avez tapé le début d'une instruction \"if\" ou "
|
||||
"vous n'avez pas fermé vos parenthèses ou triple guillemets) mais il vous "
|
||||
"renvoie immédiatement une erreur syntaxique quand la saisie est incorrecte."
|
||||
|
||||
#: ../Doc/faq/extending.rst:276
|
||||
msgid ""
|
||||
"In Python you can use the :mod:`codeop` module, which approximates the "
|
||||
"parser's behavior sufficiently. IDLE uses this, for example."
|
||||
msgstr ""
|
||||
"En Python, vous pouvez utiliser le module :mod:`codeop`, qui se rapproche "
|
||||
"assez du comportement de l'analyseur. Par exemple, IDLE l'utilise."
|
||||
|
||||
#: ../Doc/faq/extending.rst:279
|
||||
msgid ""
|
||||
|
@ -371,6 +448,12 @@ msgid ""
|
|||
"to point at your custom input function. See ``Modules/readline.c`` and "
|
||||
"``Parser/myreadline.c`` for more hints."
|
||||
msgstr ""
|
||||
"La façon la plus simple de le faire en C est d'appeler :c:func:"
|
||||
"`PyRun_InteractiveLoop` (peut-être dans un autre fil d'exécution) et laisser "
|
||||
"l'interpréteur Python gérer l'entrée pour vous. Vous pouvez également "
|
||||
"définir :c:func:`PyOS_ReadlineFunctionPointer` pour pointer vers votre "
|
||||
"fonction d'entrée personnalisée. Voir ``Modules/readline.c`` et ``Parser/"
|
||||
"myreadline.c`` pour plus de conseils."
|
||||
|
||||
#: ../Doc/faq/extending.rst:285
|
||||
msgid ""
|
||||
|
@ -393,10 +476,21 @@ msgid ""
|
|||
"\". Here is a complete example using the GNU readline library (you may want "
|
||||
"to ignore **SIGINT** while calling readline())::"
|
||||
msgstr ""
|
||||
"Une autre solution est d'essayer de compiler la chaîne reçue avec :c:func:"
|
||||
"`Py_CompileString`. Si cela se compile sans erreur, essayez d'exécuter "
|
||||
"l'objet code renvoyé en appelant :c:func:`PyEval_EvalCode`. Sinon, "
|
||||
"enregistrez l'entrée pour plus tard. Si la compilation échoue, vérifiez s'il "
|
||||
"s'agit d'une erreur ou s'il faut juste plus de données — en extrayant la "
|
||||
"chaîne de message du tuple d'exception et en la comparant à la chaîne *"
|
||||
"\"unexpected EOF while parsing\"*. Voici un exemple complet d'utilisation de "
|
||||
"la bibliothèque *readline* de GNU (il vous est possible d'ignorer **SIGINT** "
|
||||
"lors de l'appel à ``readline()``) ::"
|
||||
|
||||
#: ../Doc/faq/extending.rst:439
|
||||
msgid "How do I find undefined g++ symbols __builtin_new or __pure_virtual?"
|
||||
msgstr ""
|
||||
"Comment puis-je trouver les symboles g++ indéfinis ``__builtin_new`` ou "
|
||||
"``__pure_virtual`` ?"
|
||||
|
||||
#: ../Doc/faq/extending.rst:441
|
||||
msgid ""
|
||||
|
@ -404,18 +498,27 @@ msgid ""
|
|||
"it using g++ (change LINKCC in the Python Modules Makefile), and link your "
|
||||
"extension module using g++ (e.g., ``g++ -shared -o mymodule.so mymodule.o``)."
|
||||
msgstr ""
|
||||
"Pour charger dynamiquement les modules d'extension g++, vous devez "
|
||||
"recompiler Python, effectuer l'édition de liens en utilisant g++ (modifiez "
|
||||
"*LINKCC* dans le *Python Modules Makefile*), et effectuer l'édition de liens "
|
||||
"de votre module d'extension avec g++ (par exemple, ``g++ -shared -o mymodule."
|
||||
"so mymodule.o``)."
|
||||
|
||||
#: ../Doc/faq/extending.rst:447
|
||||
msgid ""
|
||||
"Can I create an object class with some methods implemented in C and others "
|
||||
"in Python (e.g. through inheritance)?"
|
||||
msgstr ""
|
||||
"Puis-je créer une classe d'objets avec certaines méthodes implémentées en C "
|
||||
"et d'autres en Python (p. ex. en utilisant l'héritage) ?"
|
||||
|
||||
#: ../Doc/faq/extending.rst:449
|
||||
msgid ""
|
||||
"Yes, you can inherit from built-in classes such as :class:`int`, :class:"
|
||||
"`list`, :class:`dict`, etc."
|
||||
msgstr ""
|
||||
"Oui, vous pouvez hériter de classes intégrées telles que :class:`int`, :"
|
||||
"class:`list`, :class:`dict`, etc."
|
||||
|
||||
#: ../Doc/faq/extending.rst:452
|
||||
msgid ""
|
||||
|
@ -423,6 +526,9 @@ msgid ""
|
|||
"html) provides a way of doing this from C++ (i.e. you can inherit from an "
|
||||
"extension class written in C++ using the BPL)."
|
||||
msgstr ""
|
||||
"La bibliothèque *Boost Python Library* (BPL, http://www.boost.org/libs/"
|
||||
"python/doc/index.html) fournit un moyen de le faire depuis C++ (c.-à-d. que "
|
||||
"vous pouvez hériter d'une classe d'extension écrite en C++ en utilisant BPL)."
|
||||
|
||||
#: ../Doc/faq/extending.rst:458
|
||||
msgid ""
|
||||
|
|
73
faq/gui.po
73
faq/gui.po
|
@ -53,6 +53,11 @@ msgid ""
|
|||
"targets. Language bindings are available for a number of languages "
|
||||
"including Python, Perl, Ruby, etc."
|
||||
msgstr ""
|
||||
"`wxWidgets` (https://www.wxwidgets.org) est une librairie de classe IUG "
|
||||
"portable et gratuite écrite en C++ qui fournit une apparence native sur un "
|
||||
"certain nombre de plates-formes, elle est notamment en version stable pour "
|
||||
"Windows, Mac OS X, GTK et X11. Des clients sont disponibles pour un certain "
|
||||
"nombre de langages, y compris Python, Perl, Ruby, etc."
|
||||
|
||||
#: ../Doc/faq/gui.rst:36
|
||||
msgid ""
|
||||
|
@ -74,10 +79,14 @@ msgid ""
|
|||
"licences that allow their use in commercial products as well as in freeware "
|
||||
"or shareware."
|
||||
msgstr ""
|
||||
"*wxWidgets* et *wxPython* sont tous deux des logiciels libres, open source, "
|
||||
"avec des licences permissives qui permettent leur utilisation dans des "
|
||||
"produits commerciaux ainsi que dans des logiciels gratuits ou contributifs "
|
||||
"(*shareware*)."
|
||||
|
||||
#: ../Doc/faq/gui.rst:48
|
||||
msgid "Qt"
|
||||
msgstr ""
|
||||
msgstr "*Qt*"
|
||||
|
||||
#: ../Doc/faq/gui.rst:50
|
||||
msgid ""
|
||||
|
@ -89,16 +98,26 @@ msgid ""
|
|||
"com/commercial/license-faq>`_ if you want to write proprietary "
|
||||
"applications. PySide is free for all applications."
|
||||
msgstr ""
|
||||
"Il existe des liens disponibles pour la boîte à outils *Qt* (en utilisant "
|
||||
"soit `PyQt <https://riverbankcomputing.com/software/pyqt/intro>`_ ou `PySide "
|
||||
"<https://wiki.qt.io/PySide>`_) et pour *KDE* (`PyKDE4 <https://techbase.kde."
|
||||
"org/Languages/Python/Using_PyKDE_4>`__). *PyQt* est actuellement plus mûre "
|
||||
"que *PySide*, mais*PyQt* nécessite d'acheter une licence de `Riverbank "
|
||||
"Computing <https://www.riverbankcomputing.com/commercial/license-faq>`_ si "
|
||||
"vous voulez écrire des applications propriétaires. *PySide* est gratuit "
|
||||
"pour toutes les applications."
|
||||
|
||||
#: ../Doc/faq/gui.rst:57
|
||||
msgid ""
|
||||
"Qt 4.5 upwards is licensed under the LGPL license; also, commercial licenses "
|
||||
"are available from `The Qt Company <https://www.qt.io/licensing/>`_."
|
||||
msgstr ""
|
||||
"*Qt >= 4.5* est sous licence LGPL ; de plus, des licences commerciales sont "
|
||||
"disponibles auprès de `The Qt Company <https://www.qt.io/licensing/>`_."
|
||||
|
||||
#: ../Doc/faq/gui.rst:61
|
||||
msgid "Gtk+"
|
||||
msgstr ""
|
||||
msgstr "*Gtk+*"
|
||||
|
||||
#: ../Doc/faq/gui.rst:63
|
||||
msgid ""
|
||||
|
@ -108,7 +127,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/faq/gui.rst:67
|
||||
msgid "FLTK"
|
||||
msgstr ""
|
||||
msgstr "*FLTK*"
|
||||
|
||||
#: ../Doc/faq/gui.rst:69
|
||||
msgid ""
|
||||
|
@ -116,6 +135,9 @@ msgid ""
|
|||
"powerful and mature cross-platform windowing system, are available from `the "
|
||||
"PyFLTK project <http://pyfltk.sourceforge.net>`_."
|
||||
msgstr ""
|
||||
"Les liaisons Python pour `the FLTK toolkit <http://www.fltk.org>`_, un "
|
||||
"système de fenêtrage multi-plateformes simple mais puissant et mûr, sont "
|
||||
"disponibles auprès de `the PyFLTK project <http://pyfltk.sourceforge.net>`_."
|
||||
|
||||
#: ../Doc/faq/gui.rst:75
|
||||
msgid "FOX"
|
||||
|
@ -130,15 +152,18 @@ msgstr ""
|
|||
|
||||
#: ../Doc/faq/gui.rst:83
|
||||
msgid "OpenGL"
|
||||
msgstr ""
|
||||
msgstr "*OpenGL*"
|
||||
|
||||
#: ../Doc/faq/gui.rst:85
|
||||
msgid "For OpenGL bindings, see `PyOpenGL <http://pyopengl.sourceforge.net>`_."
|
||||
msgstr ""
|
||||
"Pour les clients OpenGL, voir `PyOpenGL <http://pyopengl.sourceforge.net>`_."
|
||||
|
||||
#: ../Doc/faq/gui.rst:89
|
||||
msgid "What platform-specific GUI toolkits exist for Python?"
|
||||
msgstr ""
|
||||
"Quelles boîtes à outils IUG spécifiques à la plate-forme existent pour "
|
||||
"Python ?"
|
||||
|
||||
#: ../Doc/faq/gui.rst:91
|
||||
msgid ""
|
||||
|
@ -152,14 +177,17 @@ msgid ""
|
|||
"Microsoft Foundation Classes and a Python programming environment that's "
|
||||
"written mostly in Python using the MFC classes."
|
||||
msgstr ""
|
||||
":ref:`Pythonwin <windows-faq>` de Mark Hammond inclut une interface vers les "
|
||||
"classes `Microsoft Foundation Classes` et un environnement de programmation "
|
||||
"Python qui est écrit principalement en Python utilisant les classes *MFC*."
|
||||
|
||||
#: ../Doc/faq/gui.rst:101
|
||||
msgid "Tkinter questions"
|
||||
msgstr ""
|
||||
msgstr "Questions à propos de *Tkinter*"
|
||||
|
||||
#: ../Doc/faq/gui.rst:104
|
||||
msgid "How do I freeze Tkinter applications?"
|
||||
msgstr ""
|
||||
msgstr "Comment puis-je geler (*freezer*) les applications *Tkinter* ?"
|
||||
|
||||
#: ../Doc/faq/gui.rst:106
|
||||
msgid ""
|
||||
|
@ -167,6 +195,10 @@ msgid ""
|
|||
"applications, the applications will not be truly stand-alone, as the "
|
||||
"application will still need the Tcl and Tk libraries."
|
||||
msgstr ""
|
||||
"*Freeze* est un outil pour créer des applications autonomes. Lors du "
|
||||
"*freezage* des applications Tkinter, les applications ne seront pas vraiment "
|
||||
"autonomes, car l'application aura toujours besoin des bibliothèques Tcl et "
|
||||
"Tk."
|
||||
|
||||
#: ../Doc/faq/gui.rst:110
|
||||
msgid ""
|
||||
|
@ -174,6 +206,9 @@ msgid ""
|
|||
"point to them at run-time using the :envvar:`TCL_LIBRARY` and :envvar:"
|
||||
"`TK_LIBRARY` environment variables."
|
||||
msgstr ""
|
||||
"Une solution consiste à empaqueter les bibliothèques *Tcl* et *Tk* dans "
|
||||
"l'application et de les retrouver à l'exécution en utilisant les variables "
|
||||
"d'environnement :envvar:`TCL_LIBRARY` et :envvar:`TK_LIBRARY`."
|
||||
|
||||
#: ../Doc/faq/gui.rst:114
|
||||
msgid ""
|
||||
|
@ -182,6 +217,10 @@ msgid ""
|
|||
"is SAM (stand-alone modules), which is part of the Tix distribution (http://"
|
||||
"tix.sourceforge.net/)."
|
||||
msgstr ""
|
||||
"Pour obtenir des applications vraiment autonomes, les scripts *Tcl* qui "
|
||||
"forment la bibliothèque doivent également être intégrés dans l'application. "
|
||||
"Un outil supportant cela est *SAM* (modules autonomes), qui fait partie de "
|
||||
"la distribution *Tix* (http://tix.sourceforge.net/)."
|
||||
|
||||
#: ../Doc/faq/gui.rst:119
|
||||
msgid ""
|
||||
|
@ -189,10 +228,14 @@ msgid ""
|
|||
"`Tclsam_init`, etc. inside Python's :file:`Modules/tkappinit.c`, and link "
|
||||
"with libtclsam and libtksam (you might include the Tix libraries as well)."
|
||||
msgstr ""
|
||||
"Compilez Tix avec SAM activé, exécutez l'appel approprié à :c:func:"
|
||||
"`Tclsam_init`, etc. dans le fichier :file:`Modules/tkappinit.c` de Python, "
|
||||
"et liez avec *libtclsam* et *libtksam* (il est également possible d'inclure "
|
||||
"les bibliothèques *Tix*)."
|
||||
|
||||
#: ../Doc/faq/gui.rst:126
|
||||
msgid "Can I have Tk events handled while waiting for I/O?"
|
||||
msgstr ""
|
||||
msgstr "Puis-je modifier des événements *Tk* pendant l'écoute des *E/S* ?"
|
||||
|
||||
#: ../Doc/faq/gui.rst:128
|
||||
msgid ""
|
||||
|
@ -202,10 +245,18 @@ msgid ""
|
|||
"function which will be called from the Tk mainloop when I/O is possible on a "
|
||||
"file descriptor. See :ref:`tkinter-file-handlers`."
|
||||
msgstr ""
|
||||
"Sur d'autres plates-formes que Windows, oui, et vous n'avez même pas besoin "
|
||||
"de fils d'exécution multiples ! Mais vous devrez restructurer un peu votre "
|
||||
"code *E/S*. *Tk* possède l'équivalent de l'appel :c:func:`XtAddInput()` de "
|
||||
"*Xt*, qui vous permet d'enregistrer une fonction de *callback* qui sera "
|
||||
"appelée par la boucle principale *Tk* lorsque des *E/S* sont disponibles sur "
|
||||
"un descripteur de fichier. Voir :ref:`tkinter-file-handlers`."
|
||||
|
||||
#: ../Doc/faq/gui.rst:136
|
||||
msgid "I can't get key bindings to work in Tkinter: why?"
|
||||
msgstr ""
|
||||
"Je n'arrive pas à faire fonctionner les raccourcis clavier dans *Tkinter* : "
|
||||
"pourquoi ?"
|
||||
|
||||
#: ../Doc/faq/gui.rst:138
|
||||
msgid ""
|
||||
|
@ -213,6 +264,9 @@ msgid ""
|
|||
"meth:`bind` method don't get handled even when the appropriate key is "
|
||||
"pressed."
|
||||
msgstr ""
|
||||
"Une raison récurrente est que les gestionnaires d’évènements liés à des "
|
||||
"évènements avec la méthode :meth:`bind` ne sont pas pris en charge même "
|
||||
"lorsque la touche appropriée est activée."
|
||||
|
||||
#: ../Doc/faq/gui.rst:141
|
||||
msgid ""
|
||||
|
@ -221,3 +275,8 @@ msgid ""
|
|||
"focus command. Usually a widget is given the keyboard focus by clicking in "
|
||||
"it (but not for labels; see the takefocus option)."
|
||||
msgstr ""
|
||||
"La cause la plus fréquente est que l'objet graphique auquel s'applique la "
|
||||
"liaison n'a pas de « focus clavier ». Consultez la documentation *Tk* pour "
|
||||
"la commande *focus*. Habituellement, un objet graphique reçoit le focus du "
|
||||
"clavier en cliquant dessus (mais pas pour les étiquettes ; voir l'option "
|
||||
"*takefocus*)."
|
||||
|
|
282
faq/library.po
282
faq/library.po
|
@ -36,6 +36,9 @@ msgid ""
|
|||
"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 ""
|
||||
|
@ -58,6 +61,12 @@ msgid ""
|
|||
"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:"
|
||||
|
@ -79,10 +88,12 @@ 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 ""
|
||||
msgstr "Comment rendre un script Python exécutable sous Unix ?"
|
||||
|
||||
#: ../Doc/faq/library.rst:49
|
||||
msgid ""
|
||||
|
@ -90,24 +101,31 @@ msgid ""
|
|||
"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 ""
|
||||
msgstr "en utilisant le chemin de l'interpréteur Python sur votre machine."
|
||||
|
||||
#: ../Doc/faq/library.rst:64
|
||||
msgid ""
|
||||
|
@ -116,6 +134,11 @@ msgid ""
|
|||
"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 ""
|
||||
|
@ -123,6 +146,9 @@ msgid ""
|
|||
"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 ""
|
||||
|
@ -136,10 +162,12 @@ 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 ""
|
||||
msgstr "Existe-t'il un module *curse* ou *termcap* en Python ?"
|
||||
|
||||
#: ../Doc/faq/library.rst:96
|
||||
msgid ""
|
||||
|
@ -158,44 +186,57 @@ msgid ""
|
|||
"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 ""
|
||||
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 ""
|
||||
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 ""
|
||||
msgstr "donc il doit être déclaré avec deux paramètres ::"
|
||||
|
||||
#: ../Doc/faq/library.rst:133
|
||||
msgid "Common tasks"
|
||||
msgstr ""
|
||||
msgstr "Tâches fréquentes"
|
||||
|
||||
#: ../Doc/faq/library.rst:136
|
||||
msgid "How do I test a Python program or component?"
|
||||
msgstr ""
|
||||
msgstr "Comment tester un programme ou un composant Python ?"
|
||||
|
||||
#: ../Doc/faq/library.rst:138
|
||||
msgid ""
|
||||
|
@ -203,12 +244,17 @@ msgid ""
|
|||
"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 ""
|
||||
|
@ -220,14 +266,23 @@ msgid ""
|
|||
"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 ""
|
||||
msgstr "à la fin du module principal du programme."
|
||||
|
||||
#: ../Doc/faq/library.rst:160
|
||||
msgid ""
|
||||
|
@ -240,12 +295,24 @@ msgid ""
|
|||
"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 ""
|
||||
|
@ -253,10 +320,13 @@ msgid ""
|
|||
"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 ""
|
||||
msgstr "Comment générer la documentation à partir des *docstrings* ?"
|
||||
|
||||
#: ../Doc/faq/library.rst:182
|
||||
msgid ""
|
||||
|
@ -265,10 +335,15 @@ msgid ""
|
|||
"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 ""
|
||||
msgstr "Comment détecter qu'une touche est pressée ?"
|
||||
|
||||
#: ../Doc/faq/library.rst:191
|
||||
msgid ""
|
||||
|
@ -294,11 +369,11 @@ msgstr ""
|
|||
|
||||
#: ../Doc/faq/library.rst:227
|
||||
msgid "Threads"
|
||||
msgstr ""
|
||||
msgstr "Fils d'exécution"
|
||||
|
||||
#: ../Doc/faq/library.rst:230
|
||||
msgid "How do I program using threads?"
|
||||
msgstr ""
|
||||
msgstr "Comment programmer avec des fils d'exécution ?"
|
||||
|
||||
#: ../Doc/faq/library.rst:234
|
||||
msgid ""
|
||||
|
@ -312,22 +387,29 @@ 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 ""
|
||||
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 ""
|
||||
|
@ -335,10 +417,16 @@ msgid ""
|
|||
"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 ""
|
||||
|
@ -352,6 +440,8 @@ 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 ""
|
||||
|
@ -364,11 +454,11 @@ msgstr ""
|
|||
|
||||
#: ../Doc/faq/library.rst:294
|
||||
msgid "Here's a trivial example::"
|
||||
msgstr ""
|
||||
msgstr "Voici un exemple trivial ::"
|
||||
|
||||
#: ../Doc/faq/library.rst:332
|
||||
msgid "When run, this will produce the following output:"
|
||||
msgstr ""
|
||||
msgstr "Quand celui-ci est exécuté, il produit la sortie suivante :"
|
||||
|
||||
#: ../Doc/faq/library.rst:350
|
||||
msgid ""
|
||||
|
@ -379,6 +469,8 @@ 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 ""
|
||||
|
@ -397,16 +489,24 @@ msgid ""
|
|||
"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 ""
|
||||
msgstr "Les suivantes ne le sont pas ::"
|
||||
|
||||
#: ../Doc/faq/library.rst:391
|
||||
msgid ""
|
||||
|
@ -415,10 +515,15 @@ msgid ""
|
|||
"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 ""
|
||||
msgstr "Pourquoi ne pas se débarrasser du verrou global de l'interpréteur ?"
|
||||
|
||||
#: ../Doc/faq/library.rst:403
|
||||
msgid ""
|
||||
|
@ -427,6 +532,12 @@ msgid ""
|
|||
"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 ""
|
||||
|
@ -468,6 +579,15 @@ msgid ""
|
|||
"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 ""
|
||||
|
@ -476,12 +596,19 @@ msgid ""
|
|||
"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"
|
||||
|
@ -489,7 +616,7 @@ msgstr "Les entrées/sorties"
|
|||
|
||||
#: ../Doc/faq/library.rst:449
|
||||
msgid "How do I delete a file? (And other file questions...)"
|
||||
msgstr ""
|
||||
msgstr "Comment supprimer un fichier ? (et autres questions sur les fichiers…)"
|
||||
|
||||
#: ../Doc/faq/library.rst:451
|
||||
msgid ""
|
||||
|
@ -506,10 +633,16 @@ msgid ""
|
|||
"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 ""
|
||||
|
@ -525,20 +658,26 @@ msgid ""
|
|||
"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 ""
|
||||
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 ""
|
||||
msgstr "Comment lire (ou écrire) des données binaires ?"
|
||||
|
||||
#: ../Doc/faq/library.rst:483
|
||||
msgid ""
|
||||
|
@ -546,12 +685,18 @@ msgid ""
|
|||
"`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 ""
|
||||
|
@ -559,16 +704,24 @@ msgid ""
|
|||
"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 ""
|
||||
|
@ -578,6 +731,12 @@ msgid ""
|
|||
"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 ""
|
||||
|
@ -642,27 +801,30 @@ msgstr ""
|
|||
|
||||
#: ../Doc/faq/library.rst:592
|
||||
msgid "How do I access the serial (RS232) port?"
|
||||
msgstr ""
|
||||
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 ""
|
||||
msgstr "Pour Win32, POSIX (Linux, BSD, etc.) et Jython :"
|
||||
|
||||
#: ../Doc/faq/library.rst:596
|
||||
msgid "http://pyserial.sourceforge.net"
|
||||
msgstr ""
|
||||
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 ""
|
||||
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 ""
|
||||
|
@ -697,11 +859,11 @@ msgstr ""
|
|||
|
||||
#: ../Doc/faq/library.rst:631
|
||||
msgid "Network/Internet Programming"
|
||||
msgstr ""
|
||||
msgstr "Programmation réseau et Internet"
|
||||
|
||||
#: ../Doc/faq/library.rst:634
|
||||
msgid "What WWW tools are there for Python?"
|
||||
msgstr ""
|
||||
msgstr "Quels sont les outils Python dédiés à la Toile ?"
|
||||
|
||||
#: ../Doc/faq/library.rst:636
|
||||
msgid ""
|
||||
|
@ -709,28 +871,38 @@ msgid ""
|
|||
"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 ""
|
||||
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::"
|
||||
|
@ -745,27 +917,31 @@ msgstr ""
|
|||
|
||||
#: ../Doc/faq/library.rst:689
|
||||
msgid "What module should I use to help with generating HTML?"
|
||||
msgstr ""
|
||||
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 ""
|
||||
msgstr "Comment envoyer un courriel avec un script Python ?"
|
||||
|
||||
#: ../Doc/faq/library.rst:700
|
||||
msgid "Use the standard library module :mod:`smtplib`."
|
||||
msgstr ""
|
||||
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 ""
|
||||
|
@ -774,10 +950,16 @@ msgid ""
|
|||
"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 ""
|
||||
|
@ -793,6 +975,13 @@ msgid ""
|
|||
"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 ""
|
||||
|
@ -804,11 +993,12 @@ msgstr ""
|
|||
|
||||
#: ../Doc/faq/library.rst:760
|
||||
msgid "Databases"
|
||||
msgstr ""
|
||||
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."
|
||||
|
@ -827,10 +1017,13 @@ msgid ""
|
|||
"`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 ""
|
||||
msgstr "Comment implémenter la persistance d'objets en Python ?"
|
||||
|
||||
#: ../Doc/faq/library.rst:781
|
||||
msgid ""
|
||||
|
@ -919,54 +1112,65 @@ msgstr ""
|
|||
|
||||
#: ../Doc/faq/library.rst:842
|
||||
msgid "Mathematics and Numerics"
|
||||
msgstr ""
|
||||
msgstr "Mathématiques et calcul numérique"
|
||||
|
||||
#: ../Doc/faq/library.rst:845
|
||||
msgid "How do I generate random numbers in Python?"
|
||||
msgstr ""
|
||||
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 ""
|
||||
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 ""
|
||||
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 ""
|
||||
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 ""
|
||||
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."
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -295,16 +295,26 @@ msgid ""
|
|||
"``__declspec(dllexport)``. In a .pyd, linkage is defined in a list of "
|
||||
"available functions."
|
||||
msgstr ""
|
||||
"Notez que le chemin de recherche pour *foo.pyd* est *PYTHONPATH*, il est "
|
||||
"différent de celui qu'utilise Windows pour rechercher *foo.dll*. De plus, "
|
||||
"*foo.pyd* n'a pas besoin d'être présent pour que votre programme s'exécute "
|
||||
"alors que si vous avez lié votre programme avec une *dll* celle-ci est "
|
||||
"requise. Bien sûr *foo.pyd* est nécessaire si vous écrivez ``import foo``. "
|
||||
"Dans une *DLL* le lien est déclaré dans le code source avec "
|
||||
"``__declspec(dllexport)``. Dans un *.pyd* la liaison est définie dans une "
|
||||
"liste de fonctions disponibles."
|
||||
|
||||
#: ../Doc/faq/windows.rst:193
|
||||
msgid "How can I embed Python into a Windows application?"
|
||||
msgstr ""
|
||||
msgstr "Comment puis-je intégrer Python dans une application Windows ?"
|
||||
|
||||
#: ../Doc/faq/windows.rst:195
|
||||
msgid ""
|
||||
"Embedding the Python interpreter in a Windows app can be summarized as "
|
||||
"follows:"
|
||||
msgstr ""
|
||||
"L'intégration de l'interpréteur Python dans une application Windows peut se "
|
||||
"résumer comme suit :"
|
||||
|
||||
#: ../Doc/faq/windows.rst:197
|
||||
msgid ""
|
||||
|
@ -323,6 +333,12 @@ msgid ""
|
|||
"the so-called \"import lib\" corresponding to :file:`python{NN}.dll`. It "
|
||||
"merely defines symbols for the linker.)"
|
||||
msgstr ""
|
||||
"Vous pouvez créer un lien vers Python de deux manières différentes. Un lien "
|
||||
"au moment du chargement signifie pointer vers :file:`python{NN}.lib`, tandis "
|
||||
"qu'un lien au moment de l'exécution signifie pointer vers :file:`python{NN}."
|
||||
"dll`. (Note générale : :file:`python{NN}.lib` est le soi-disant « *import "
|
||||
"lib* » correspondant à :file:`python{NN}.dll`. Il définit simplement des "
|
||||
"liens symboliques pour l'éditeur de liens.)"
|
||||
|
||||
#: ../Doc/faq/windows.rst:209
|
||||
msgid ""
|
||||
|
@ -334,12 +350,22 @@ msgid ""
|
|||
"these pointers transparent to any C code that calls routines in Python's C "
|
||||
"API."
|
||||
msgstr ""
|
||||
"La liaison en temps réel simplifie grandement les options de liaison ; tout "
|
||||
"se passe au moment de l'exécution. Votre code doit charger :file:"
|
||||
"`python{NN}.dll` en utilisant la routine Windows ``LoadLibraryEx()``. Le "
|
||||
"code doit aussi utiliser des routines d'accès et des données dans :file:"
|
||||
"`python{NN}.dll` (c'est-à-dire les API C de Python) en utilisant des "
|
||||
"pointeurs obtenus par la routine Windows ``GetProcAddress()``. Les macros "
|
||||
"peuvent rendre l'utilisation de ces pointeurs transparente à tout code C qui "
|
||||
"appelle des routines dans l'API C de Python."
|
||||
|
||||
#: ../Doc/faq/windows.rst:216
|
||||
msgid ""
|
||||
"Borland note: convert :file:`python{NN}.lib` to OMF format using Coff2Omf."
|
||||
"exe first."
|
||||
msgstr ""
|
||||
"Note Borland : convertir :file:`python{NN}.lib` au format OMF en utilisant "
|
||||
"*Coff2Omf.exe* en premier."
|
||||
|
||||
#: ../Doc/faq/windows.rst:221
|
||||
msgid ""
|
||||
|
@ -349,6 +375,12 @@ msgid ""
|
|||
"link *into* your .exe file (!) You do _not_ have to create a DLL file, and "
|
||||
"this also simplifies linking."
|
||||
msgstr ""
|
||||
"Si vous utilisez SWIG, il est facile de créer un « module d'extension » "
|
||||
"Python qui rendra les données et les méthodes de l'application disponibles "
|
||||
"pour Python. SWIG s'occupera de tous les détails ennuyeux pour vous. Le "
|
||||
"résultat est du code C que vous liez *dans* votre *fichier.exe* (!) Vous "
|
||||
"n'avez _pas_ besoin de créer un fichier DLL, et cela simplifie également la "
|
||||
"liaison."
|
||||
|
||||
#: ../Doc/faq/windows.rst:227
|
||||
msgid ""
|
||||
|
@ -358,6 +390,12 @@ msgid ""
|
|||
"classes, as you should, the init function will be called initleoc(). This "
|
||||
"initializes a mostly hidden helper class used by the shadow class."
|
||||
msgstr ""
|
||||
"SWIG va créer une fonction d'initialisation (fonction en C) dont le nom "
|
||||
"dépend du nom du module d'extension. Par exemple, si le nom du module est "
|
||||
"*leo*, la fonction *init* sera appelée *initleo()*. Si vous utilisez des "
|
||||
"classes *shadow* SWIG, comme vous le devriez, la fonction *init* sera "
|
||||
"appelée *initleoc()*. Ceci initialise une classe auxiliaire invisible "
|
||||
"utilisée par la classe *shadow*."
|
||||
|
||||
#: ../Doc/faq/windows.rst:233
|
||||
msgid ""
|
||||
|
@ -365,18 +403,26 @@ msgid ""
|
|||
"calling the initialization function is equivalent to importing the module "
|
||||
"into Python! (This is the second key undocumented fact.)"
|
||||
msgstr ""
|
||||
"La raison pour laquelle vous pouvez lier le code C à l'étape 2 dans votre "
|
||||
"*fichier.exe* est que l'appel de la fonction d'initialisation équivaut à "
|
||||
"importer le module dans Python ! (C'est le deuxième fait clé non documenté.)"
|
||||
|
||||
#: ../Doc/faq/windows.rst:237
|
||||
msgid ""
|
||||
"In short, you can use the following code to initialize the Python "
|
||||
"interpreter with your extension module."
|
||||
msgstr ""
|
||||
"En bref, vous pouvez utiliser le code suivant pour initialiser "
|
||||
"l'interpréteur Python avec votre module d'extension."
|
||||
|
||||
#: ../Doc/faq/windows.rst:248
|
||||
msgid ""
|
||||
"There are two problems with Python's C API which will become apparent if you "
|
||||
"use a compiler other than MSVC, the compiler used to build pythonNN.dll."
|
||||
msgstr ""
|
||||
"Il y a deux problèmes avec l'API C de Python qui apparaîtront si vous "
|
||||
"utilisez un compilateur autre que MSVC, le compilateur utilisé pour "
|
||||
"construire *pythonNN.dll*."
|
||||
|
||||
#: ../Doc/faq/windows.rst:251
|
||||
msgid ""
|
||||
|
@ -385,12 +431,19 @@ msgid ""
|
|||
"compiler's notion of a struct FILE will be different. From an "
|
||||
"implementation standpoint these are very _low_ level functions."
|
||||
msgstr ""
|
||||
"Problème 1 : Les fonctions dites de \"Très Haut Niveau\" qui prennent les "
|
||||
"arguments FILE * ne fonctionneront pas dans un environnement multi-"
|
||||
"compilateur car chaque compilateur aura une notion différente de la "
|
||||
"structure de FILE. Du point de vue de l'implémentation, il s'agit de "
|
||||
"fonctions de très bas niveau."
|
||||
|
||||
#: ../Doc/faq/windows.rst:256
|
||||
msgid ""
|
||||
"Problem 2: SWIG generates the following code when generating wrappers to "
|
||||
"void functions:"
|
||||
msgstr ""
|
||||
"Problème 2 : SWIG génère le code suivant lors de la génération "
|
||||
"*d'encapsuleurs* pour annuler les fonctions :"
|
||||
|
||||
#: ../Doc/faq/windows.rst:265
|
||||
msgid ""
|
||||
|
@ -398,6 +451,10 @@ msgid ""
|
|||
"structure called _Py_NoneStruct inside pythonNN.dll. Again, this code will "
|
||||
"fail in a mult-compiler environment. Replace such code by:"
|
||||
msgstr ""
|
||||
"Hélas, *Py_None* est une macro qui se développe en référence à une structure "
|
||||
"de données complexe appelée *_Py_NoneStruct* dans *pythonNN.dll*. Encore "
|
||||
"une fois, ce code échouera dans un environnement multi-compilateur. "
|
||||
"Remplacez ce code par :"
|
||||
|
||||
#: ../Doc/faq/windows.rst:273
|
||||
msgid ""
|
||||
|
@ -405,6 +462,9 @@ msgid ""
|
|||
"automatically, though I have not been able to get this to work (I'm a "
|
||||
"complete SWIG newbie)."
|
||||
msgstr ""
|
||||
"Il est possible d'utiliser la commande ``%typemap`` de SWIG pour effectuer "
|
||||
"le changement automatiquement, bien que je n'ai pas réussi à le faire "
|
||||
"fonctionner (je suis un débutant complet avec SWIG)."
|
||||
|
||||
#: ../Doc/faq/windows.rst:277
|
||||
msgid ""
|
||||
|
@ -417,6 +477,15 @@ msgid ""
|
|||
"is a Python object (defined in your extension module) that contains read() "
|
||||
"and write() methods."
|
||||
msgstr ""
|
||||
"Utiliser un script shell Python pour créer une fenêtre d'interpréteur Python "
|
||||
"depuis votre application Windows n'est pas une bonne idée ; la fenêtre "
|
||||
"résultante sera indépendante du système de fenêtrage de votre application. "
|
||||
"Vous (ou la classe *wxPythonWindow*) devriez plutôt créer une fenêtre "
|
||||
"d'interpréteur « native ». Il est facile de connecter cette fenêtre à "
|
||||
"l'interpréteur Python. Vous pouvez rediriger l'entrée/sortie de Python vers "
|
||||
"*n'importe quel* objet qui supporte la lecture et l'écriture, donc tout ce "
|
||||
"dont vous avez besoin est un objet Python (défini dans votre module "
|
||||
"d'extension) qui contient les méthodes *read()* et *write()*."
|
||||
|
||||
#: ../Doc/faq/windows.rst:286
|
||||
msgid "How do I keep editors from inserting tabs into my Python source?"
|
||||
|
|
|
@ -18,7 +18,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/howto/cporting.rst:7
|
||||
msgid "Porting Extension Modules to Python 3"
|
||||
msgstr ""
|
||||
msgstr "Portage des modules d'extension vers Python 3"
|
||||
|
||||
#: ../Doc/howto/cporting.rst:9
|
||||
msgid "Benjamin Peterson"
|
||||
|
@ -36,6 +36,12 @@ msgid ""
|
|||
"obvious on the C level. This document endeavors to document "
|
||||
"incompatibilities and how they can be worked around."
|
||||
msgstr ""
|
||||
"Changer l'API C n'était pas l'un des objectifs de Python 3, cependant les "
|
||||
"nombreux changements au niveau Python ont rendu impossible de garder l'API "
|
||||
"de Python 2 comme elle était. Certains changements tels que l'unification "
|
||||
"de :func:`int` et :func:`long` sont plus apparents au niveau C. Ce document "
|
||||
"s'efforce de documenter les incompatibilités et la façon dont elles peuvent "
|
||||
"être contournées."
|
||||
|
||||
#: ../Doc/howto/cporting.rst:23
|
||||
msgid "Conditional compilation"
|
||||
|
@ -46,26 +52,33 @@ msgid ""
|
|||
"The easiest way to compile only some code for Python 3 is to check if :c:"
|
||||
"macro:`PY_MAJOR_VERSION` is greater than or equal to 3. ::"
|
||||
msgstr ""
|
||||
"La façon la plus simple de compiler seulement une section de code pour "
|
||||
"Python 3 est de vérifier si :c:macro:`PY_MAJOR_VERSION` est supérieur ou "
|
||||
"égal à 3. ::"
|
||||
|
||||
#: ../Doc/howto/cporting.rst:32
|
||||
msgid ""
|
||||
"API functions that are not present can be aliased to their equivalents "
|
||||
"within conditional blocks."
|
||||
msgstr ""
|
||||
"Les fonctions manquantes dans l'API peuvent être remplacées par des alias à "
|
||||
"leurs équivalents dans des blocs conditionnels."
|
||||
|
||||
#: ../Doc/howto/cporting.rst:37
|
||||
msgid "Changes to Object APIs"
|
||||
msgstr ""
|
||||
msgstr "Modifications apportées aux API des objets"
|
||||
|
||||
#: ../Doc/howto/cporting.rst:39
|
||||
msgid ""
|
||||
"Python 3 merged together some types with similar functions while cleanly "
|
||||
"separating others."
|
||||
msgstr ""
|
||||
"Python 3 a fusionné certains types avec des fonctions identiques tout en "
|
||||
"séparant de façon propre, d'autres."
|
||||
|
||||
#: ../Doc/howto/cporting.rst:44
|
||||
msgid "str/unicode Unification"
|
||||
msgstr ""
|
||||
msgstr "Unification de *str* et *unicode*"
|
||||
|
||||
#: ../Doc/howto/cporting.rst:46
|
||||
msgid ""
|
||||
|
@ -81,10 +94,23 @@ msgid ""
|
|||
"shows best practices with regards to :c:type:`PyUnicode`, :c:type:"
|
||||
"`PyString`, and :c:type:`PyBytes`. ::"
|
||||
msgstr ""
|
||||
"Le type :func:`str` de Python 3 est l'équivalent de :func:`unicode` sous "
|
||||
"Python 2 ; Les fonctions C sont appelées ``PyUnicode_*`` pour les deux "
|
||||
"versions. L'ancien type de chaîne de caractères de 8 bits est devenue :func:"
|
||||
"`bytes`, avec des fonctions C nommées ``PyBytes_*``. Python 2.6 et toutes "
|
||||
"les versions supérieures fournissent un en-tête de compatibilité, :file:"
|
||||
"`bytesobject.h`, faisant correspondre les noms ``PyBytes`` aux ``PyString``. "
|
||||
"Pour une meilleure compatibilité avec Python 3, :c:type:`PyUnicode` doit "
|
||||
"être utilisé seulement pour des données textuelles et :c:type:`PyBytes` pour "
|
||||
"des données binaires. Il est important de noter que :c:type:`PyBytes` et :c:"
|
||||
"type:`PyUnicode` en Python 3 ne sont pas remplaçables contrairement à :c:"
|
||||
"type:`PyString` et :c:type:`PyUnicode` dans Python 2. L'exemple suivant "
|
||||
"montre l'utilisation optimale de :c:type:`PyUnicode`, :c:type:`PyString`, "
|
||||
"et :c:type:`PyBytes`. ::"
|
||||
|
||||
#: ../Doc/howto/cporting.rst:95
|
||||
msgid "long/int Unification"
|
||||
msgstr ""
|
||||
msgstr "Unification de *long* et *int*"
|
||||
|
||||
#: ../Doc/howto/cporting.rst:97
|
||||
msgid ""
|
||||
|
@ -96,7 +122,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/howto/cporting.rst:104
|
||||
msgid "Module initialization and state"
|
||||
msgstr ""
|
||||
msgstr "Initialisation et état du module"
|
||||
|
||||
#: ../Doc/howto/cporting.rst:106
|
||||
msgid ""
|
||||
|
@ -106,10 +132,16 @@ msgid ""
|
|||
"in both Python 2 and Python 3 is tricky. The following simple example "
|
||||
"demonstrates how. ::"
|
||||
msgstr ""
|
||||
"Python 3 a remanié son système d'initialisation des modules d'extension "
|
||||
"(Voir :pep:`3121`.). Au lieu de stocker les états de module dans les "
|
||||
"variables globales, les états doivent être stockés dans une structure "
|
||||
"spécifique à l'interpréteur. Créer des modules qui ont un fonctionnement "
|
||||
"correct en Python 2 et Python 3 est délicat. L'exemple suivant montre "
|
||||
"comment. ::"
|
||||
|
||||
#: ../Doc/howto/cporting.rst:197
|
||||
msgid "CObject replaced with Capsule"
|
||||
msgstr ""
|
||||
msgstr "CObject remplacé par Capsule"
|
||||
|
||||
#: ../Doc/howto/cporting.rst:199
|
||||
msgid ""
|
||||
|
@ -120,6 +152,13 @@ msgid ""
|
|||
"APIs relied on undefined behavior in C. (For further reading on the "
|
||||
"rationale behind Capsules, please see :issue:`5630`.)"
|
||||
msgstr ""
|
||||
"L'objet :c:type:`Capsule` a été introduit dans Python 3.1 et 2.7 pour "
|
||||
"remplacer :c:type:`CObject`. Le type :c:type:`CObject` était utile, mais son "
|
||||
"API posait des soucis : elle ne permettait pas la distinction entre les "
|
||||
"objets C valides, ce qui permettait aux objets C assortis incorrectement de "
|
||||
"planter l'interpréteur, et certaines des API s'appuyaient sur un "
|
||||
"comportement indéfini en C. (Pour plus de détails sur la logique de "
|
||||
"Capsules, veuillez consulter :issue:`5630`)."
|
||||
|
||||
#: ../Doc/howto/cporting.rst:206
|
||||
msgid ""
|
||||
|
@ -131,6 +170,14 @@ msgid ""
|
|||
"support both CObjects and Capsules. (Note that Python 3.0 is no longer "
|
||||
"supported, and it is not recommended for production use.)"
|
||||
msgstr ""
|
||||
"Si vous utilisez actuellement CObjects et que vous voulez migrer vers la "
|
||||
"version 3.1 ou plus récente, vous devrez passer à Capsules. :c:type:"
|
||||
"`CObject` est déprécié dans 3.1 et 2.7 et est supprimé dans Python 3.2. Si "
|
||||
"vous ne gérez que les versions 2.7, ou 3.1 et supérieures, vous pouvez "
|
||||
"simplement passer à :c:type:`Capsule`. Si vous avez besoin de gérer Python "
|
||||
"3.0, ou des versions de Python antérieures à 2.7, vous devez gérer CObjects "
|
||||
"et Capsules. (Notez que Python 3.0 n'est plus maintenu, et qu'il n'est pas "
|
||||
"recommandé pour une utilisation en production)."
|
||||
|
||||
#: ../Doc/howto/cporting.rst:216
|
||||
msgid ""
|
||||
|
@ -140,6 +187,11 @@ msgid ""
|
|||
"automatically use Capsules in versions of Python with Capsules, and switch "
|
||||
"to CObjects when Capsules are unavailable."
|
||||
msgstr ""
|
||||
"L'exemple suivant d'en-tête de fichier :file:`capsulethunk.h` peut résoudre "
|
||||
"le problème. Il suffit d'écrire votre code dans l'API :c:type:`Capsule` et "
|
||||
"d'inclure ce fichier d'en-tête après :file:`Python.h`. Votre code utilisera "
|
||||
"automatiquement Capsules dans les versions de Python avec Capsules, et "
|
||||
"passera à CObjects lorsque les Capsules ne sont pas disponibles."
|
||||
|
||||
#: ../Doc/howto/cporting.rst:223
|
||||
msgid ""
|
||||
|
@ -148,10 +200,15 @@ msgid ""
|
|||
"the simulated :c:type:`Capsule` objects created by :file:`capsulethunk.h` "
|
||||
"behave slightly differently from real Capsules. Specifically:"
|
||||
msgstr ""
|
||||
":file:`capsulethunk.h` reproduit le fonctionnement de Capsules en utilisant "
|
||||
"CObjects. Cependant, :c:type:`CObject` ne permet pas de stocker le \"nom\" "
|
||||
"de la capsule. Les objets simulés :c:type:`Capsule` créés par :file:"
|
||||
"`capsulethunk.h` se comportent légèrement différemment des véritables "
|
||||
"Capsules. Ainsi :"
|
||||
|
||||
#: ../Doc/howto/cporting.rst:228
|
||||
msgid "The name parameter passed in to :c:func:`PyCapsule_New` is ignored."
|
||||
msgstr ""
|
||||
msgstr "Le paramètre *name* passé à :c:func:`PyCapsule_New` est ignoré."
|
||||
|
||||
#: ../Doc/howto/cporting.rst:230
|
||||
msgid ""
|
||||
|
@ -159,10 +216,13 @@ msgid ""
|
|||
"`PyCapsule_GetPointer` is ignored, and no error checking of the name is "
|
||||
"performed."
|
||||
msgstr ""
|
||||
"Le paramètre *name* passé à :c:func:`PyCapsule_IsValid` et :c:func:"
|
||||
"`PyCapsule_GetPointer` est ignoré et il n'y a pas de vérification d'erreur "
|
||||
"du nom."
|
||||
|
||||
#: ../Doc/howto/cporting.rst:234
|
||||
msgid ":c:func:`PyCapsule_GetName` always returns NULL."
|
||||
msgstr ""
|
||||
msgstr ":c:func:`PyCapsule_GetName` renvoie toujours un NULL."
|
||||
|
||||
#: ../Doc/howto/cporting.rst:236
|
||||
msgid ""
|
||||
|
@ -171,6 +231,11 @@ msgid ""
|
|||
"`PyCapsule_SetName` was deemed preferable to silent failure here. If this "
|
||||
"is inconvenient, feel free to modify your local copy as you see fit.)"
|
||||
msgstr ""
|
||||
":c:func:`PyCapsule_SetName` lève toujours une exception et renvoie un échec. "
|
||||
"Note : Puisqu'il n'y a aucun moyen de stocker un nom dans un CObject, "
|
||||
"l'échec verbeux de :c:func:`PyCapsule_SetName` a été jugé préférable à un "
|
||||
"échec non-verbeux dans ce cas. Si cela ne vous convenait pas, vous pouvez "
|
||||
"modifier votre copie locale selon vos besoins."
|
||||
|
||||
#: ../Doc/howto/cporting.rst:243
|
||||
msgid ""
|
||||
|
@ -178,10 +243,13 @@ msgid ""
|
|||
"source:`Doc/includes/capsulethunk.h`. We also include it here for your "
|
||||
"convenience:"
|
||||
msgstr ""
|
||||
"Vous pouvez trouver :file:`capsulethunk.h` dans la distribution source de "
|
||||
"Python comme :source:`Doc/includes/capsulethunk.h`. Nous l'incluons ici pour "
|
||||
"votre confort :"
|
||||
|
||||
#: ../Doc/howto/cporting.rst:252
|
||||
msgid "Other options"
|
||||
msgstr ""
|
||||
msgstr "Autres options"
|
||||
|
||||
#: ../Doc/howto/cporting.rst:254
|
||||
msgid ""
|
||||
|
@ -189,3 +257,7 @@ msgid ""
|
|||
"<http://cython.org/>`_. It translates a Python-like language to C. The "
|
||||
"extension modules it creates are compatible with Python 3 and Python 2."
|
||||
msgstr ""
|
||||
"Si vous écrivez un nouveau module d'extension, vous pouvez envisager "
|
||||
"d'utiliser `Cython <http://cython.org/>`_. Il traduit un langage de type "
|
||||
"Python en C. Les modules d'extension qu'il crée sont compatibles avec Python "
|
||||
"3 et Python 2."
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1041,6 +1041,8 @@ msgid ""
|
|||
"Creating a logging config file and reading it using the :func:`fileConfig` "
|
||||
"function."
|
||||
msgstr ""
|
||||
"Créer un fichier de configuration de `logging` et le lire en employant la "
|
||||
"fonction :func:`fileConfig`."
|
||||
|
||||
#: ../Doc/howto/logging.rst:559
|
||||
msgid ""
|
||||
|
@ -1481,6 +1483,9 @@ msgid ""
|
|||
":class:`~handlers.TimedRotatingFileHandler` instances send messages to disk "
|
||||
"files, rotating the log file at certain timed intervals."
|
||||
msgstr ""
|
||||
"Les instances de :class:`~handlers.TimedRotatingFileHandler` envoient des "
|
||||
"messages aux fichiers de disque, en permutant le fichier journal à "
|
||||
"intervalles réguliers."
|
||||
|
||||
#: ../Doc/howto/logging.rst:887
|
||||
msgid ""
|
||||
|
|
|
@ -18,11 +18,11 @@ msgstr ""
|
|||
|
||||
#: ../Doc/howto/pyporting.rst:5
|
||||
msgid "Porting Python 2 Code to Python 3"
|
||||
msgstr ""
|
||||
msgstr "Portage de code Python 2 vers Python 3"
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:7
|
||||
msgid "Brett Cannon"
|
||||
msgstr ""
|
||||
msgstr "Brett Cannon"
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:0
|
||||
msgid "Abstract"
|
||||
|
@ -35,12 +35,18 @@ msgid ""
|
|||
"Python. This guide is meant to help you figure out how best to support both "
|
||||
"Python 2 & 3 simultaneously."
|
||||
msgstr ""
|
||||
"Python 3 étant le futur de Python tandis que Python 2 est encore activement "
|
||||
"utilisé, il est préférable de faire en sorte que votre projet soit "
|
||||
"disponible pour les deux versions majeures de Python. Ce guide est destiné à "
|
||||
"vous aider à comprendre comment gérer simultanément Python 2 & 3."
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:16
|
||||
msgid ""
|
||||
"If you are looking to port an extension module instead of pure Python code, "
|
||||
"please see :ref:`cporting-howto`."
|
||||
msgstr ""
|
||||
"Si vous cherchez à porter un module d'extension plutôt que du pur Python, "
|
||||
"veuillez consulter :ref:`cporting-howto`."
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:19
|
||||
msgid ""
|
||||
|
@ -53,16 +59,20 @@ msgid ""
|
|||
"For help with porting, you can email the python-porting_ mailing list with "
|
||||
"questions."
|
||||
msgstr ""
|
||||
"Vous pouvez solliciter par courriel l'aide de la liste de diffusion python-"
|
||||
"porting_ pour vos questions liées au portage."
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:26
|
||||
msgid "The Short Explanation"
|
||||
msgstr ""
|
||||
msgstr "La version courte"
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:28
|
||||
msgid ""
|
||||
"To make your project be single-source Python 2/3 compatible, the basic steps "
|
||||
"are:"
|
||||
msgstr ""
|
||||
"Afin de rendre votre projet compatible Python 2/3 avec le même code source, "
|
||||
"les étapes de base sont :"
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:31
|
||||
msgid ""
|
||||
|
@ -75,11 +85,13 @@ msgid ""
|
|||
"Make sure you have good test coverage (coverage.py_ can help; ``pip install "
|
||||
"coverage``)"
|
||||
msgstr ""
|
||||
"S'assurer d'une bonne couverture des tests (coverage.py_ peut aider ; ``pip "
|
||||
"install coverage``)"
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:35 ../Doc/howto/pyporting.rst:114
|
||||
#: ../Doc/howto/pyporting.rst:369
|
||||
msgid "Learn the differences between Python 2 & 3"
|
||||
msgstr ""
|
||||
msgstr "Apprendre les différences entre Python 2 et 3"
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:36
|
||||
msgid ""
|
||||
|
@ -98,6 +110,9 @@ msgid ""
|
|||
"Use caniusepython3_ to find out which of your dependencies are blocking your "
|
||||
"use of Python 3 (``pip install caniusepython3``)"
|
||||
msgstr ""
|
||||
"Utiliser caniusepython3_ pour déterminer quelles sont, parmi les dépendances "
|
||||
"que vous utilisez, celles qui bloquent votre utilisation de Python 3 (``pip "
|
||||
"install caniusepython3``)"
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:42
|
||||
msgid ""
|
||||
|
@ -105,6 +120,10 @@ msgid ""
|
|||
"integration to make sure you stay compatible with Python 2 & 3 (tox_ can "
|
||||
"help test against multiple versions of Python; ``pip install tox``)"
|
||||
msgstr ""
|
||||
"Une fois que vos dépendances ne sont plus un obstacle, utiliser "
|
||||
"l'intégration continue pour s'assurer que votre code demeure compatible "
|
||||
"Python 2 & 3 (tox_ peut aider à tester la comptabilité de sources avec "
|
||||
"plusieurs versions de Python; ``pip install tox``)"
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:46
|
||||
msgid ""
|
||||
|
@ -134,12 +153,21 @@ msgid ""
|
|||
"lower-level work is now mostly done for you and thus can at least benefit "
|
||||
"from the automated changes immediately."
|
||||
msgstr ""
|
||||
"Un autre point important est que la modernisation de votre code Python 2 "
|
||||
"pour le rendre compatible Python 3 est pratiquement automatique. Bien qu'il "
|
||||
"soit possible d'avoir à effectuer des changements d'API compte-tenu de la "
|
||||
"clarification de la gestion des données textuelles et binaires dans Python "
|
||||
"3, le travail de bas niveau est en grande partie fait pour vous et vous "
|
||||
"pouvez ainsi bénéficiez de ces modifications automatiques immédiatement."
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:66
|
||||
msgid ""
|
||||
"Keep those key points in mind while you read on about the details of porting "
|
||||
"your code to support Python 2 & 3 simultaneously."
|
||||
msgstr ""
|
||||
"Gardez ces points-clés en tête pendant que vous lisez les détails ci-dessous "
|
||||
"concernant le portage de votre code vers une compatibilité simultanée Python "
|
||||
"2 et 3."
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:71
|
||||
msgid "Drop support for Python 2.5 and older (at least)"
|
||||
|
@ -176,6 +204,8 @@ msgstr ""
|
|||
msgid ""
|
||||
"Make sure you specify the proper version support in your ``setup.py`` file"
|
||||
msgstr ""
|
||||
"Assurez vous de spécifier la bonne version supportée dans le fichier ``setup."
|
||||
"py``"
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:94
|
||||
msgid ""
|
||||
|
@ -186,10 +216,16 @@ msgid ""
|
|||
"minor version of Python that you do support, e.g. ``Programming Language :: "
|
||||
"Python :: 2.7``."
|
||||
msgstr ""
|
||||
"Votre fichier ``setup.py`` devrait contenir le bon `trove classifier`_ "
|
||||
"spécifiant les versions de Python avec lesquelles vous êtes compatible. "
|
||||
"Comme votre projet ne supporte pas encore Python 3, vous devriez au moins "
|
||||
"spécifier ``Programming Language :: Python :: 2 :: Only``. Dans l'idéal vous "
|
||||
"devriez indiquer chaque version majeure/mineure de Python que vous gérez, "
|
||||
"par exemple ``Programming Language :: Python :: 2.7``."
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:102
|
||||
msgid "Have good test coverage"
|
||||
msgstr ""
|
||||
msgstr "Obtenir une bonne couverture de code"
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:104
|
||||
msgid ""
|
||||
|
@ -213,10 +249,18 @@ msgid ""
|
|||
"and the `Porting to Python 3`_ book (which is free online). There is also a "
|
||||
"handy `cheat sheet`_ from the Python-Future project."
|
||||
msgstr ""
|
||||
"Une fois que votre code est bien testé, vous êtes prêt à démarrer votre "
|
||||
"portage vers Python 3 ! Mais afin de comprendre comment votre code va "
|
||||
"changer et à quoi s'intéresser spécifiquement pendant que vous codez, vous "
|
||||
"aurez sûrement envie de découvrir quels sont les changements introduits par "
|
||||
"Python 3 par rapport à Python 2. Pour atteindre cet objectif, les deux "
|
||||
"meilleurs moyens sont de lire le document `\"What's New\"`_ de chaque "
|
||||
"version de Python 3 et le livre `Porting to Python 3`_ (gratuit en ligne). "
|
||||
"Il y a également une `cheat sheet`_ très pratique du projet Python-Future."
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:126
|
||||
msgid "Update your code"
|
||||
msgstr ""
|
||||
msgstr "Mettre à jour votre code"
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:128
|
||||
msgid ""
|
||||
|
@ -242,6 +286,16 @@ msgid ""
|
|||
"transform your application code knowing that any tests which fail is a "
|
||||
"translation failure."
|
||||
msgstr ""
|
||||
"Indépendamment de l'outil sur lequel se porte votre choix, celui-ci mettra à "
|
||||
"jour votre code afin qu'il puisse être exécuté par Python 3 tout en "
|
||||
"maintenant sa compatibilité avec la version de Python 2 dont vous êtes "
|
||||
"parti. En fonction du niveau de prudence que vous visez, vous pouvez "
|
||||
"exécuter l'outil sur votre suite de test d'abord puis inspecter visuellement "
|
||||
"la différence afin de vous assurer que la transformation est exacte. Après "
|
||||
"avoir transformé votre suite de test et vérifié que tous les tests "
|
||||
"s'exécutent comme attendu, vous pouvez transformer le code de votre "
|
||||
"application avec l'assurance que chaque test qui échoue correspond à un "
|
||||
"échec de traduction."
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:146
|
||||
msgid ""
|
||||
|
@ -256,6 +310,18 @@ msgid ""
|
|||
"watch out for which can be considered large issues that may be hard to debug "
|
||||
"if not watched for."
|
||||
msgstr ""
|
||||
"Malheureusement les outils ne peuvent pas automatiser tous les changements "
|
||||
"requis pour permettre à votre code de s'exécuter sous Python 3 et il y a "
|
||||
"donc quelques points sur lesquels vous devrez travailler manuellement afin "
|
||||
"d'atteindre la compatibilité totale Python 3 (les étapes nécessaires peuvent "
|
||||
"varier en fonction de l'outil utilisé). Lisez la documentation de l'outil "
|
||||
"que vous avez choisi afin d'identifier ce qu'il corrige par défaut et ce qui "
|
||||
"peut être appliqué de façon optionnelle afin de savoir ce qui sera (ou non) "
|
||||
"corrigé pour vous ou ce que vous devrez modifier vous-même (par exemple, le "
|
||||
"remplacement ``io.open()`` plutôt que la fonction native ``open()`` est "
|
||||
"inactif par défaut dans *Modernize*). Heureusement, il n'y a que quelques "
|
||||
"points à surveiller qui peuvent réellement être considérés comme des "
|
||||
"problèmes difficiles à déboguer si vous n'y prêtez pas attention."
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:157
|
||||
msgid "Division"
|
||||
|
@ -271,16 +337,27 @@ msgid ""
|
|||
"Q`` flag. If you have not been doing this then you will need to go through "
|
||||
"your code and do two things:"
|
||||
msgstr ""
|
||||
"Dans Python 3, ``5 / 2 == 2.5`` et non ``2``; toutes les divisions entre des "
|
||||
"valeurs ``int`` renvoient un ``float``. Ce changement était en réalité "
|
||||
"planifié depuis Python 2.2, publié en 2002. Depuis cette date, les "
|
||||
"utilisateurs ont été encouragés à ajouter ``from __future__ import "
|
||||
"division`` à tous les fichiers utilisant les opérateurs ``/`` et ``//`` ou à "
|
||||
"exécuter l'interpréteur avec l'option ``-Q``. Si vous n'avez pas suivi cette "
|
||||
"recommandation, vous devrez manuellement modifier votre code et effectuer "
|
||||
"deux changements :"
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:167
|
||||
msgid "Add ``from __future__ import division`` to your files"
|
||||
msgstr ""
|
||||
msgstr "Ajouter ``from __future__ import division`` à vos fichiers"
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:168
|
||||
msgid ""
|
||||
"Update any division operator as necessary to either use ``//`` to use floor "
|
||||
"division or continue using ``/`` and expect a float"
|
||||
msgstr ""
|
||||
"Remplacer tous les opérateurs de division par ``//`` pour la division "
|
||||
"entière, le cas échant, ou utiliser ``/`` et vous attendre à un résultat "
|
||||
"flottant"
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:171
|
||||
msgid ""
|
||||
|
@ -291,7 +368,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/howto/pyporting.rst:176
|
||||
msgid "Text versus binary data"
|
||||
msgstr ""
|
||||
msgstr "Texte et données binaires"
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:178
|
||||
msgid ""
|
||||
|
@ -304,6 +381,16 @@ msgid ""
|
|||
"supporting multiple languages as APIs wouldn't bother explicitly supporting "
|
||||
"``unicode`` when they claimed text data support."
|
||||
msgstr ""
|
||||
"Dans Python 2, il était possible d'utiliser le type ``str`` pour du texte et "
|
||||
"pour des données binaires. Malheureusement cet amalgame entre deux concepts "
|
||||
"différents peut conduire à du code fragile pouvant parfois fonctionner pour "
|
||||
"les deux types de données et parfois non. Cela a également conduit à des API "
|
||||
"confuses si les auteurs ne déclaraient pas explicitement que quelque chose "
|
||||
"qui acceptait ``str`` était compatible avec du texte ou des données binaires "
|
||||
"et pas un seul des deux types. Cela a compliqué la situation pour les "
|
||||
"personnes devant gérer plusieurs langages avec des API qui ne se "
|
||||
"préoccupaient pas de la gestion de ``unicode`` lorsqu'elles affirmaient être "
|
||||
"compatibles avec des données au format texte."
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:187
|
||||
msgid ""
|
||||
|
@ -338,11 +425,11 @@ msgstr ""
|
|||
|
||||
#: ../Doc/howto/pyporting.rst:212
|
||||
msgid "**Text data**"
|
||||
msgstr ""
|
||||
msgstr "**Format texte**"
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:212
|
||||
msgid "**Binary data**"
|
||||
msgstr ""
|
||||
msgstr "**Format binaire**"
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:214
|
||||
msgid "__mod__ (``%`` operator)"
|
||||
|
@ -350,27 +437,27 @@ msgstr ""
|
|||
|
||||
#: ../Doc/howto/pyporting.rst:216
|
||||
msgid "\\"
|
||||
msgstr ""
|
||||
msgstr "\\"
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:216
|
||||
msgid "decode"
|
||||
msgstr ""
|
||||
msgstr "decode"
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:218
|
||||
msgid "encode"
|
||||
msgstr ""
|
||||
msgstr "encode"
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:220
|
||||
msgid "format"
|
||||
msgstr ""
|
||||
msgstr "format"
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:222
|
||||
msgid "isdecimal"
|
||||
msgstr ""
|
||||
msgstr "isdecimal"
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:224
|
||||
msgid "isnumeric"
|
||||
msgstr ""
|
||||
msgstr "isnumeric"
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:227
|
||||
msgid ""
|
||||
|
@ -381,6 +468,14 @@ msgid ""
|
|||
"possible. This allows your code to work with only text internally and thus "
|
||||
"eliminates having to keep track of what type of data you are working with."
|
||||
msgstr ""
|
||||
"Vous pouvez rendre le problème plus simple à gérer en réalisant les "
|
||||
"opérations d'encodage et de décodage entre données binaires et texte aux "
|
||||
"extrémités de votre code. Cela signifie que lorsque vous recevez du texte "
|
||||
"dans un format binaire, vous devez immédiatement le décoder. À l'inverse si "
|
||||
"votre code doit transmettre du texte sous forme binaire, encodez-le le plus "
|
||||
"tard possible. Cela vous permet de ne manipuler que du texte à l'intérieur "
|
||||
"de votre code et permet de ne pas se préoccuper du type des données sur "
|
||||
"lesquelles vous travaillez."
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:234
|
||||
msgid ""
|
||||
|
@ -419,6 +514,16 @@ msgid ""
|
|||
"back: ``str(b'3') == b'3'``. But in Python 3 you get the string "
|
||||
"representation of the bytes object: ``str(b'3') == \"b'3'\"``."
|
||||
msgstr ""
|
||||
"Les constructeurs des types ``str`` et ``bytes`` possèdent une sémantique "
|
||||
"différente pour les mêmes arguments sous Python 2 et 3. Passer un entier à "
|
||||
"``bytes`` sous Python 2 produit une représentation de cet entier en chaîne "
|
||||
"de caractères : ``bytes(3) == '3'``. Mais sous Python 3, fournir un argument "
|
||||
"entier à ``bytes`` produit un objet *bytes* de la longueur de l'entier "
|
||||
"spécifié, rempli par des octets nuls : ``bytes(3) == b'\\x00\\x00\\x00'``. "
|
||||
"La même prudence est nécessaire lorsque vous passez un objet *bytes* à "
|
||||
"``str``. En Python 2, vous récupérez simplement l'objet *bytes* initial : "
|
||||
"``str(b'3') == b'3'``. Mais en Python 3, vous récupérez la représentation en "
|
||||
"chaîne de caractères de l'objet *bytes* : ``str(b'3') == \"b'3'\"``."
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:262
|
||||
msgid ""
|
||||
|
@ -431,14 +536,25 @@ msgid ""
|
|||
"``six.indexbytes()`` which will return an integer like in Python 3: ``six."
|
||||
"indexbytes(b'123', 1)``."
|
||||
msgstr ""
|
||||
"Enfin, l'indiçage des données binaires exige une manipulation prudente (bien "
|
||||
"que le découpage, ou *slicing* en anglais, ne nécessite pas d'attention "
|
||||
"particulière). En Python 2, ``b'123'[1] == b'2'`` tandis qu'en Python 3 "
|
||||
"``b'123'[1] == 50``. Puisque les données binaires ne sont simplement qu'une "
|
||||
"collection de nombres en binaire, Python 3 renvoie la valeur entière de "
|
||||
"l'octet indicé. Mais en Python 2, étant donné que ``bytes == str``, "
|
||||
"l'indiçage renvoie une tranche de longueur 1 de *bytes*. Le projet six_ "
|
||||
"dispose d'une fonction appelée ``six.indexbytes()`` qui renvoie un entier "
|
||||
"comme en Python 3 : ``six.indexbytes(b'123', 1)``."
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:271
|
||||
msgid "To summarize:"
|
||||
msgstr ""
|
||||
msgstr "Pour résumer :"
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:273
|
||||
msgid "Decide which of your APIs take text and which take binary data"
|
||||
msgstr ""
|
||||
"Décidez lesquelles de vos API travaillent sur du texte et lesquelles "
|
||||
"travaillent sur des données binaires"
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:274
|
||||
msgid ""
|
||||
|
@ -446,6 +562,10 @@ msgid ""
|
|||
"and code for binary data works with ``bytes`` in Python 2 (see the table "
|
||||
"above for what methods you cannot use for each type)"
|
||||
msgstr ""
|
||||
"Assurez vous que votre code travaillant sur du texte fonctionne aussi avec "
|
||||
"le type ``unicode`` et que le code travaillant sur du binaire fonctionne "
|
||||
"avec le type ``bytes`` en Python 2 (voir le tableau ci-dessus pour la liste "
|
||||
"des méthodes utilisables par chaque type)"
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:277
|
||||
msgid ""
|
||||
|
@ -458,12 +578,16 @@ msgid ""
|
|||
"Decode binary data to text as soon as possible, encode text as binary data "
|
||||
"as late as possible"
|
||||
msgstr ""
|
||||
"Décodez les données binaires en texte dès que possible, encodez votre texte "
|
||||
"au format binaire le plus tard possible"
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:281
|
||||
msgid ""
|
||||
"Open files using :func:`io.open` and make sure to specify the ``b`` mode "
|
||||
"when appropriate"
|
||||
msgstr ""
|
||||
"Ouvrez les fichiers avec la fonction :func:`io.open` et assurez-vous de "
|
||||
"spécifier le mode ``b`` le cas échéant"
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:283
|
||||
msgid "Be careful when indexing binary data"
|
||||
|
@ -471,7 +595,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/howto/pyporting.rst:286
|
||||
msgid "Prevent compatibility regressions"
|
||||
msgstr ""
|
||||
msgstr "Prévenir les régressions de compatibilité"
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:288
|
||||
msgid ""
|
||||
|
@ -480,12 +604,19 @@ msgid ""
|
|||
"Python 3. This is especially true if you have a dependency which is blocking "
|
||||
"you from actually running under Python 3 at the moment."
|
||||
msgstr ""
|
||||
"Une fois votre code traduit pour être compatible avec Python 3, vous devez "
|
||||
"vous assurer que votre code n'a pas régressé ou qu'il ne fonctionne pas sous "
|
||||
"Python 3. Ceci est particulièrement important si une de vos dépendances vous "
|
||||
"empêche de réellement exécuter le code sous Python 3 pour le moment."
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:293
|
||||
msgid ""
|
||||
"To help with staying compatible, any new modules you create should have at "
|
||||
"least the following block of code at the top of it::"
|
||||
msgstr ""
|
||||
"Afin de vous aider à maintenir la compatibilité, nous préconisons que tous "
|
||||
"les nouveaux modules que vous créez aient au moins le bloc de code suivant "
|
||||
"en en-tête : ::"
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:301
|
||||
msgid ""
|
||||
|
@ -494,6 +625,11 @@ msgid ""
|
|||
"warnings into errors with ``-Werror`` then you can make sure that you don't "
|
||||
"accidentally miss a warning."
|
||||
msgstr ""
|
||||
"Vous pouvez également lancer Python 2 avec le paramètre ``-3`` afin d'être "
|
||||
"alerté en cas de divers problèmes de compatibilité que votre code déclenche "
|
||||
"durant son exécution. Si vous transformez les avertissements en erreur avec "
|
||||
"``-Werror``, vous pouvez être certain que ne passez pas accidentellement à "
|
||||
"côté d'un avertissement."
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:307
|
||||
msgid ""
|
||||
|
@ -504,10 +640,17 @@ msgid ""
|
|||
"does require you only support Python 2.7 and Python 3.4 or newer as that is "
|
||||
"Pylint's minimum Python version support."
|
||||
msgstr ""
|
||||
"Vous pouvez également utiliser le projet Pylint_ et son option ``--py3k`` "
|
||||
"afin de modifier votre code pour recevoir des avertissements lorsque celui-"
|
||||
"ci dévie de la compatibilité Python 3. Cela vous évite par ailleurs "
|
||||
"d'appliquer Modernize_ ou Futurize_ sur votre code régulièrement pour "
|
||||
"détecter des régressions liées à la compatibilité. Cependant cela nécessite "
|
||||
"de votre part le support de Python 2.7 et Python 3.4 ou ultérieur étant "
|
||||
"donné qu'il s'agit de la version minimale gérée par Pylint."
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:316
|
||||
msgid "Check which dependencies block your transition"
|
||||
msgstr ""
|
||||
msgstr "Vérifier quelles dépendances empêchent la migration"
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:318
|
||||
msgid ""
|
||||
|
@ -527,10 +670,17 @@ msgid ""
|
|||
"manually check your dependencies and to be notified quickly when you can "
|
||||
"start running on Python 3."
|
||||
msgstr ""
|
||||
"Le projet fournit également du code intégrable dans votre suite de test qui "
|
||||
"déclenchera un échec de test lorsque plus aucune de vos dépendances n'est "
|
||||
"bloquante pour l'utilisation de Python 3. Cela vous permet de ne pas avoir à "
|
||||
"vérifier manuellement vos dépendances et d'être notifié rapidement quand "
|
||||
"vous pouvez exécuter votre application avec Python 3."
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:331
|
||||
msgid "Update your ``setup.py`` file to denote Python 3 compatibility"
|
||||
msgstr ""
|
||||
"Mettre à jour votre fichier ``setup.py`` pour spécifier la compatibilité "
|
||||
"avec Python 3"
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:333
|
||||
msgid ""
|
||||
|
@ -540,10 +690,16 @@ msgid ""
|
|||
"that you support Python 2 **and** 3. Ideally you will also want to add "
|
||||
"classifiers for each major/minor version of Python you now support."
|
||||
msgstr ""
|
||||
"Une fois que votre code fonctionne sous Python 3, vous devez mettre à jour "
|
||||
"vos classeurs dans votre ``setup.py`` pour inclure ``Programming Language :: "
|
||||
"Python :: 3`` et non seulement le support de Python 2. Cela signifiera à "
|
||||
"quiconque utilise votre code que vous gérez Python 2 **et** 3. Dans l'idéal "
|
||||
"vous devrez aussi ajouter une mention pour chaque version majeure/mineure de "
|
||||
"Python que vous supportez désormais."
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:341
|
||||
msgid "Use continuous integration to stay compatible"
|
||||
msgstr ""
|
||||
msgstr "Utiliser l'intégration continue pour maintenir la compatibilité"
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:343
|
||||
msgid ""
|
||||
|
@ -553,6 +709,12 @@ msgid ""
|
|||
"integrate tox with your continuous integration system so that you never "
|
||||
"accidentally break Python 2 or 3 support."
|
||||
msgstr ""
|
||||
"Une fois que vous êtes en mesure d'exécuter votre code sous Python 3, vous "
|
||||
"devrez vous assurer que celui-ci fonctionne toujours pour Python 2 & 3. tox_ "
|
||||
"est vraisemblablement le meilleur outil pour exécuter vos tests avec "
|
||||
"plusieurs interpréteurs Python. Vous pouvez alors intégrer *tox* à votre "
|
||||
"système d'intégration continue afin de ne jamais accidentellement casser "
|
||||
"votre gestion de Python 2 ou 3."
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:349
|
||||
msgid ""
|
||||
|
@ -571,6 +733,11 @@ msgid ""
|
|||
"don't accidentally break Python 2 or 3 compatibility regardless of which "
|
||||
"version you typically run your tests under while developing."
|
||||
msgstr ""
|
||||
"Et c'est à peu près tout ! Une fois ceci fait, votre code source est "
|
||||
"compatible avec Python 2 et 3 simultanément. Votre suite de test est "
|
||||
"également en place de telle sorte que vous ne cassiez pas la compatibilité "
|
||||
"Python 2 ou 3 indépendamment de la version que vous utilisez pendant le "
|
||||
"développement."
|
||||
|
||||
#: ../Doc/howto/pyporting.rst:362
|
||||
msgid "Dropping Python 2 support completely"
|
||||
|
|
|
@ -553,7 +553,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/howto/sockets.rst:395
|
||||
msgid "Performance"
|
||||
msgstr ""
|
||||
msgstr "Performances"
|
||||
|
||||
#: ../Doc/howto/sockets.rst:397
|
||||
msgid ""
|
||||
|
|
|
@ -427,6 +427,8 @@ msgid ""
|
|||
"Now that you've learned the rudiments of Unicode, we can look at Python's "
|
||||
"Unicode features."
|
||||
msgstr ""
|
||||
"Maintenant que vous avez appris les rudiments de l'Unicode, nous pouvons "
|
||||
"regarder les fonctionnalités Unicode de Python."
|
||||
|
||||
#: ../Doc/howto/unicode.rst:236
|
||||
msgid "The Unicode Type"
|
||||
|
@ -538,7 +540,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/howto/unicode.rst:374
|
||||
msgid "Unicode Literals in Python Source Code"
|
||||
msgstr ""
|
||||
msgstr "Littéraux Unicode dans le code source Python"
|
||||
|
||||
#: ../Doc/howto/unicode.rst:376
|
||||
msgid ""
|
||||
|
@ -573,6 +575,10 @@ msgid ""
|
|||
"which would display the accented characters naturally, and have the right "
|
||||
"characters used at runtime."
|
||||
msgstr ""
|
||||
"Idéalement, vous devriez être capable d'écrire des littéraux dans l'encodage "
|
||||
"naturel de votre langue. Vous pourriez alors éditer le code source de "
|
||||
"Python avec votre éditeur favori qui affiche les caractères accentués "
|
||||
"naturellement, et a les bons caractères utilisés au moment de l'exécution."
|
||||
|
||||
#: ../Doc/howto/unicode.rst:407
|
||||
msgid ""
|
||||
|
@ -589,6 +595,12 @@ msgid ""
|
|||
"special; they have no significance to Python but are a convention. Python "
|
||||
"looks for ``coding: name`` or ``coding=name`` in the comment."
|
||||
msgstr ""
|
||||
"La syntaxe s'inspire de la notation d'Emacs pour spécifier les variables "
|
||||
"locales à un fichier. *Emacs* supporte de nombreuses variables différentes, "
|
||||
"mais Python ne gère que *coding*. Les symboles ``-*-`` indiquent à Emacs "
|
||||
"que le commentaire est spécial ; ils n'ont aucune signification pour Python "
|
||||
"mais sont une convention. Python cherche ``coding: name`` ou "
|
||||
"``coding=name`` dans le commentaire."
|
||||
|
||||
#: ../Doc/howto/unicode.rst:423
|
||||
msgid ""
|
||||
|
@ -609,7 +621,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/howto/unicode.rst:450
|
||||
msgid "Unicode Properties"
|
||||
msgstr ""
|
||||
msgstr "Propriétés Unicode"
|
||||
|
||||
#: ../Doc/howto/unicode.rst:452
|
||||
msgid ""
|
||||
|
@ -626,6 +638,8 @@ msgid ""
|
|||
"The following program displays some information about several characters, "
|
||||
"and prints the numeric value of one particular character::"
|
||||
msgstr ""
|
||||
"Le programme suivant affiche des informations sur plusieurs caractères et "
|
||||
"affiche la valeur numérique d'un caractère particulier ::"
|
||||
|
||||
#: ../Doc/howto/unicode.rst:473
|
||||
msgid "When run, this prints::"
|
||||
|
@ -650,11 +664,11 @@ msgstr ""
|
|||
|
||||
#: ../Doc/howto/unicode.rst:497
|
||||
msgid "The documentation for the :mod:`unicodedata` module."
|
||||
msgstr ""
|
||||
msgstr "La documentation du module :mod:`unicodedata`."
|
||||
|
||||
#: ../Doc/howto/unicode.rst:499
|
||||
msgid "The documentation for the :mod:`codecs` module."
|
||||
msgstr ""
|
||||
msgstr "La documentation du module :mod:`codecs`."
|
||||
|
||||
#: ../Doc/howto/unicode.rst:501
|
||||
msgid ""
|
||||
|
@ -666,7 +680,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/howto/unicode.rst:508
|
||||
msgid "Reading and Writing Unicode Data"
|
||||
msgstr ""
|
||||
msgstr "Lecture et écriture de données Unicode"
|
||||
|
||||
#: ../Doc/howto/unicode.rst:510
|
||||
msgid ""
|
||||
|
@ -674,6 +688,10 @@ msgid ""
|
|||
"is input/output. How do you get Unicode strings into your program, and how "
|
||||
"do you convert Unicode into a form suitable for storage or transmission?"
|
||||
msgstr ""
|
||||
"Une fois que vous avez écrit du code qui fonctionne avec des données "
|
||||
"Unicode, le problème suivant concerne les entrées/sorties. Comment obtenir "
|
||||
"des chaînes Unicode dans votre programme et comment convertir les chaînes "
|
||||
"Unicode dans une forme appropriée pour le stockage ou la transmission ?"
|
||||
|
||||
#: ../Doc/howto/unicode.rst:514
|
||||
msgid ""
|
||||
|
@ -683,6 +701,13 @@ msgid ""
|
|||
"Unicode data, for example. Many relational databases also support Unicode-"
|
||||
"valued columns and can return Unicode values from an SQL query."
|
||||
msgstr ""
|
||||
"Il est possible que vous n'ayez rien à faire en fonction de vos sources "
|
||||
"d'entrée et des destinations de vos données de sortie ; il convient de "
|
||||
"vérifier si les bibliothèques utilisées dans votre application gèrent "
|
||||
"l'Unicode nativement. Par exemple, les analyseurs XML renvoient souvent des "
|
||||
"données Unicode. De nombreuses bases de données relationnelles prennent "
|
||||
"également en charge les colonnes encodées en Unicode et peuvent renvoyer des "
|
||||
"valeurs Unicode à partir d'une requête SQL."
|
||||
|
||||
#: ../Doc/howto/unicode.rst:520
|
||||
msgid ""
|
||||
|
@ -733,13 +758,15 @@ msgstr ""
|
|||
|
||||
#: ../Doc/howto/unicode.rst:553
|
||||
msgid "Reading Unicode from a file is therefore simple::"
|
||||
msgstr ""
|
||||
msgstr "Lire de l'Unicode à partir d'un fichier est donc simple ::"
|
||||
|
||||
#: ../Doc/howto/unicode.rst:560
|
||||
msgid ""
|
||||
"It's also possible to open files in update mode, allowing both reading and "
|
||||
"writing::"
|
||||
msgstr ""
|
||||
"Il est également possible d'ouvrir des fichiers en mode « mise à jour », "
|
||||
"permettant à la fois la lecture et l'écriture ::"
|
||||
|
||||
#: ../Doc/howto/unicode.rst:569
|
||||
msgid ""
|
||||
|
@ -756,7 +783,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/howto/unicode.rst:580
|
||||
msgid "Unicode filenames"
|
||||
msgstr ""
|
||||
msgstr "Noms de fichiers Unicode"
|
||||
|
||||
#: ../Doc/howto/unicode.rst:582
|
||||
msgid ""
|
||||
|
@ -778,12 +805,20 @@ msgid ""
|
|||
"writing, you can usually just provide the Unicode string as the filename, "
|
||||
"and it will be automatically converted to the right encoding for you::"
|
||||
msgstr ""
|
||||
"La fonction :func:`sys.getfilesystemencoding` renvoie l'encodage à utiliser "
|
||||
"sur votre système actuel, au cas où vous voudriez faire l'encodage "
|
||||
"manuellement, mais il n'y a pas vraiment de raisons de s'embêter avec ça. "
|
||||
"Lors de l'ouverture d'un fichier pour la lecture ou l'écriture, vous pouvez "
|
||||
"généralement simplement fournir la chaîne Unicode comme nom de fichier et "
|
||||
"elle est automatiquement convertie à l'encodage qui convient ::"
|
||||
|
||||
#: ../Doc/howto/unicode.rst:602
|
||||
msgid ""
|
||||
"Functions in the :mod:`os` module such as :func:`os.stat` will also accept "
|
||||
"Unicode filenames."
|
||||
msgstr ""
|
||||
"Les fonctions du module :mod:`os` telles que :func:`os.stat` acceptent "
|
||||
"également les noms de fichiers Unicode."
|
||||
|
||||
#: ../Doc/howto/unicode.rst:605
|
||||
msgid ""
|
||||
|
@ -800,27 +835,31 @@ msgstr ""
|
|||
|
||||
#: ../Doc/howto/unicode.rst:622
|
||||
msgid "will produce the following output:"
|
||||
msgstr ""
|
||||
msgstr "produit la sortie suivante :"
|
||||
|
||||
#: ../Doc/howto/unicode.rst:630
|
||||
msgid ""
|
||||
"The first list contains UTF-8-encoded filenames, and the second list "
|
||||
"contains the Unicode versions."
|
||||
msgstr ""
|
||||
"La première liste contient les noms de fichiers encodés en UTF-8 et la "
|
||||
"seconde contient les versions Unicode."
|
||||
|
||||
#: ../Doc/howto/unicode.rst:636
|
||||
msgid "Tips for Writing Unicode-aware Programs"
|
||||
msgstr ""
|
||||
msgstr "Conseils pour écrire des programmes compatibles Unicode"
|
||||
|
||||
#: ../Doc/howto/unicode.rst:638
|
||||
msgid ""
|
||||
"This section provides some suggestions on writing software that deals with "
|
||||
"Unicode."
|
||||
msgstr ""
|
||||
"Cette section fournit quelques suggestions sur l'écriture de logiciels qui "
|
||||
"traitent de l'Unicode."
|
||||
|
||||
#: ../Doc/howto/unicode.rst:641
|
||||
msgid "The most important tip is:"
|
||||
msgstr ""
|
||||
msgstr "Le conseil le plus important est:"
|
||||
|
||||
#: ../Doc/howto/unicode.rst:643
|
||||
msgid ""
|
||||
|
@ -892,7 +931,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/howto/unicode.rst:698
|
||||
msgid "Revision History and Acknowledgements"
|
||||
msgstr ""
|
||||
msgstr "Historique des modifications et remerciements"
|
||||
|
||||
#: ../Doc/howto/unicode.rst:700
|
||||
msgid ""
|
||||
|
|
|
@ -128,6 +128,13 @@ msgid ""
|
|||
"purposes the default is ``None``, so that 0 and 1 are not allowed in the "
|
||||
"input."
|
||||
msgstr ""
|
||||
"La :rfc:`3548` autorise une correspondance optionnelle du chiffre 0 (zéro) "
|
||||
"vers la lettre O (/o/) ainsi que du chiffre 1 (un) vers soit la lettre I (/"
|
||||
"i/) ou la lettre L (/l/). L'argument optionnel *map01*, lorsqu'il diffère de "
|
||||
"``None``, spécifie en quelle lettre le chiffre 1 doit être transformé "
|
||||
"(lorsque *map01* n'est pas ``None``, le chiffre 0 est toujours transformé en "
|
||||
"la lettre O). Pour des raisons de sécurité, le défaut est ``None``, de telle "
|
||||
"sorte que 0 et 1 ne sont pas autorisés dans l'entrée."
|
||||
|
||||
#: ../Doc/library/base64.rst:100
|
||||
msgid ""
|
||||
|
@ -211,9 +218,14 @@ msgid ""
|
|||
"Mechanisms for Specifying and Describing the Format of Internet Message "
|
||||
"Bodies"
|
||||
msgstr ""
|
||||
":rfc:`1521` — MIME (*Multipurpose Internet Mail Extensions*) *Part One: "
|
||||
"Mechanisms for Specifying and Describing the Format of Internet Message "
|
||||
"Bodies*"
|
||||
|
||||
#: ../Doc/library/base64.rst:174
|
||||
msgid ""
|
||||
"Section 5.2, \"Base64 Content-Transfer-Encoding,\" provides the definition "
|
||||
"of the base64 encoding."
|
||||
msgstr ""
|
||||
"La Section 5.2, \"*Base64 Content-Transfer-Encoding*\", donne la définition "
|
||||
"de l'encodage base64."
|
||||
|
|
|
@ -31,6 +31,9 @@ msgid ""
|
|||
"`with` statement. For more information see also :ref:`typecontextmanager` "
|
||||
"and :ref:`context-managers`."
|
||||
msgstr ""
|
||||
"Ce module fournit des utilitaires pour les tâches impliquant le mot-clé :"
|
||||
"keyword:`with`. Pour plus d'informations voir aussi :ref:"
|
||||
"`typecontextmanager` et :ref:`context-managers`."
|
||||
|
||||
#: ../Doc/library/contextlib.rst:18
|
||||
msgid "Functions provided:"
|
||||
|
@ -42,6 +45,10 @@ msgid ""
|
|||
"function for :keyword:`with` statement context managers, without needing to "
|
||||
"create a class or separate :meth:`__enter__` and :meth:`__exit__` methods."
|
||||
msgstr ""
|
||||
"Cette fonction est un :term:`decorator` qui peut être utilisé pour définir "
|
||||
"une fonction fabriquant des gestionnaires de contexte à utiliser avec :"
|
||||
"keyword:`with`, sans nécessiter de créer une classe ou des méthodes :meth:"
|
||||
"`__enter__` et :meth:`__exit__` séparées."
|
||||
|
||||
#: ../Doc/library/contextlib.rst:27
|
||||
msgid ""
|
||||
|
@ -141,16 +148,20 @@ msgid ""
|
|||
"Return a context manager that closes *thing* upon completion of the block. "
|
||||
"This is basically equivalent to::"
|
||||
msgstr ""
|
||||
"Renvoie un gestionnaire de contexte qui ferme *thing* à la fin du bloc. "
|
||||
"C'est essentiellement équivalent à ::"
|
||||
|
||||
#: ../Doc/library/contextlib.rst:123
|
||||
msgid "And lets you write code like this::"
|
||||
msgstr ""
|
||||
msgstr "Et cela vous permet d'écrire du code tel que ::"
|
||||
|
||||
#: ../Doc/library/contextlib.rst:132
|
||||
msgid ""
|
||||
"without needing to explicitly close ``page``. Even if an error occurs, "
|
||||
"``page.close()`` will be called when the :keyword:`with` block is exited."
|
||||
msgstr ""
|
||||
"sans besoin de fermer explicitement ``page``. Même si une erreur survient, "
|
||||
"``page.close()`` est appelée à la fermeture du bloc :keyword:`with`."
|
||||
|
||||
#: ../Doc/library/contextlib.rst:139
|
||||
msgid ":pep:`343` - The \"with\" statement"
|
||||
|
|
|
@ -1783,7 +1783,7 @@ msgstr "``KEY_CLOSE``"
|
|||
|
||||
#: ../Doc/library/curses.rst:1345
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
msgstr "*Close*"
|
||||
|
||||
#: ../Doc/library/curses.rst:1347
|
||||
msgid "``KEY_COMMAND``"
|
||||
|
@ -1799,7 +1799,7 @@ msgstr "``KEY_COPY``"
|
|||
|
||||
#: ../Doc/library/curses.rst:1349
|
||||
msgid "Copy"
|
||||
msgstr ""
|
||||
msgstr "*Copy*"
|
||||
|
||||
#: ../Doc/library/curses.rst:1351
|
||||
msgid "``KEY_CREATE``"
|
||||
|
@ -1823,7 +1823,7 @@ msgstr "``KEY_EXIT``"
|
|||
|
||||
#: ../Doc/library/curses.rst:1355
|
||||
msgid "Exit"
|
||||
msgstr ""
|
||||
msgstr "*Exit*"
|
||||
|
||||
#: ../Doc/library/curses.rst:1357
|
||||
msgid "``KEY_FIND``"
|
||||
|
@ -1903,7 +1903,7 @@ msgstr "``KEY_REDO``"
|
|||
|
||||
#: ../Doc/library/curses.rst:1375
|
||||
msgid "Redo"
|
||||
msgstr ""
|
||||
msgstr "*Redo*"
|
||||
|
||||
#: ../Doc/library/curses.rst:1377
|
||||
msgid "``KEY_REFERENCE``"
|
||||
|
@ -1951,7 +1951,7 @@ msgstr "``KEY_SAVE``"
|
|||
|
||||
#: ../Doc/library/curses.rst:1387
|
||||
msgid "Save"
|
||||
msgstr ""
|
||||
msgstr "*Save*"
|
||||
|
||||
#: ../Doc/library/curses.rst:1389
|
||||
msgid "``KEY_SBEG``"
|
||||
|
@ -2199,7 +2199,7 @@ msgstr "``KEY_UNDO``"
|
|||
|
||||
#: ../Doc/library/curses.rst:1449
|
||||
msgid "Undo"
|
||||
msgstr ""
|
||||
msgstr "*Undo*"
|
||||
|
||||
#: ../Doc/library/curses.rst:1451
|
||||
msgid "``KEY_MOUSE``"
|
||||
|
|
|
@ -18,7 +18,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/dis.rst:2
|
||||
msgid ":mod:`dis` --- Disassembler for Python bytecode"
|
||||
msgstr ""
|
||||
msgstr ":mod:`dis` – Désassembleur pour le code intermédiaire de Python"
|
||||
|
||||
#: ../Doc/library/dis.rst:7
|
||||
msgid "**Source code:** :source:`Lib/dis.py`"
|
||||
|
@ -31,6 +31,10 @@ msgid ""
|
|||
"is defined in the file :file:`Include/opcode.h` and used by the compiler and "
|
||||
"the interpreter."
|
||||
msgstr ""
|
||||
"La bibliothèque :mod:`dis` supporte l'analyse du :term:`bytecode` CPython "
|
||||
"en le désassemblant. Le code intermédiaire CPython, que cette bibliothèque "
|
||||
"prend en paramètre, est défini dans le fichier :file:`Include/opcode.h` et "
|
||||
"est utilisé par le compilateur et l'interpréteur."
|
||||
|
||||
#: ../Doc/library/dis.rst:18
|
||||
msgid ""
|
||||
|
@ -42,7 +46,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/dis.rst:23
|
||||
msgid "Example: Given the function :func:`myfunc`::"
|
||||
msgstr ""
|
||||
msgstr "Exemple : Etant donné la fonction :func:`myfunc` ::"
|
||||
|
||||
#: ../Doc/library/dis.rst:28
|
||||
msgid ""
|
||||
|
@ -51,7 +55,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/dis.rst:36
|
||||
msgid "(The \"2\" is a line number)."
|
||||
msgstr ""
|
||||
msgstr "(Le \"2\" est un numéro de ligne)."
|
||||
|
||||
#: ../Doc/library/dis.rst:38
|
||||
msgid "The :mod:`dis` module defines the following functions and constants:"
|
||||
|
@ -81,37 +85,40 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/dis.rst:62
|
||||
msgid "the line number, for the first instruction of each line"
|
||||
msgstr ""
|
||||
msgstr "le numéro de ligne, pour la première instruction de chaque ligne"
|
||||
|
||||
#: ../Doc/library/dis.rst:63
|
||||
msgid "the current instruction, indicated as ``-->``,"
|
||||
msgstr ""
|
||||
msgstr "l'instruction en cours, indiquée par ``-->``,"
|
||||
|
||||
#: ../Doc/library/dis.rst:64
|
||||
msgid "a labelled instruction, indicated with ``>>``,"
|
||||
msgstr ""
|
||||
msgstr "une instruction libellée, indiquée par ``> >``,"
|
||||
|
||||
#: ../Doc/library/dis.rst:65
|
||||
msgid "the address of the instruction,"
|
||||
msgstr ""
|
||||
msgstr "l'adresse de l'instruction,"
|
||||
|
||||
#: ../Doc/library/dis.rst:66
|
||||
msgid "the operation code name,"
|
||||
msgstr ""
|
||||
msgstr "le nom de le code d'opération,"
|
||||
|
||||
#: ../Doc/library/dis.rst:67
|
||||
msgid "operation parameters, and"
|
||||
msgstr ""
|
||||
msgstr "paramètres de l'opération, et"
|
||||
|
||||
#: ../Doc/library/dis.rst:68
|
||||
msgid "interpretation of the parameters in parentheses."
|
||||
msgstr ""
|
||||
msgstr "interprétation des paramètres entre parenthèses."
|
||||
|
||||
#: ../Doc/library/dis.rst:70
|
||||
msgid ""
|
||||
"The parameter interpretation recognizes local and global variable names, "
|
||||
"constant values, branch targets, and compare operators."
|
||||
msgstr ""
|
||||
"L'interprétation du paramètre reconnaît les noms des variables locales et "
|
||||
"globales, des valeurs constantes, des branchements cibles, et des opérateurs "
|
||||
"de comparaison."
|
||||
|
||||
#: ../Doc/library/dis.rst:76
|
||||
msgid ""
|
||||
|
@ -174,7 +181,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/dis.rst:146
|
||||
msgid "Python Bytecode Instructions"
|
||||
msgstr ""
|
||||
msgstr "Les instructions du code intermédiaire en Python"
|
||||
|
||||
#: ../Doc/library/dis.rst:148
|
||||
msgid ""
|
||||
|
|
|
@ -815,7 +815,7 @@ msgstr "Équivalent à : ::"
|
|||
|
||||
#: ../Doc/library/functions.rst:395
|
||||
msgid "The *start* parameter was added."
|
||||
msgstr ""
|
||||
msgstr "Ajout du paramètre *start*."
|
||||
|
||||
#: ../Doc/library/functions.rst:401
|
||||
msgid ""
|
||||
|
|
|
@ -19,6 +19,7 @@ msgstr ""
|
|||
#: ../Doc/library/getopt.rst:2
|
||||
msgid ":mod:`getopt` --- C-style parser for command line options"
|
||||
msgstr ""
|
||||
":mod:`getopt` – Analyseur de style C pour les options de ligne de commande"
|
||||
|
||||
#: ../Doc/library/getopt.rst:8
|
||||
msgid "**Source code:** :source:`Lib/getopt.py`"
|
||||
|
@ -32,6 +33,12 @@ msgid ""
|
|||
"write less code and get better help and error messages should consider using "
|
||||
"the :mod:`argparse` module instead."
|
||||
msgstr ""
|
||||
"Le module :mod:`getopt` est un analyseur pour les options de ligne de "
|
||||
"commande dont l’API est conçue pour être familière aux utilisateurs de la "
|
||||
"fonction C :c:func:`getopt`. Les utilisateurs qui ne connaissent pas la "
|
||||
"fonction :c:func:`getopt` ou qui aimeraient écrire moins de code, obtenir "
|
||||
"une meilleure aide et de meilleurs messages d’erreur devraient utiliser le "
|
||||
"module :mod:`argparse`."
|
||||
|
||||
#: ../Doc/library/getopt.rst:20
|
||||
msgid ""
|
||||
|
@ -41,10 +48,16 @@ msgid ""
|
|||
"and '``--``'). Long options similar to those supported by GNU software may "
|
||||
"be used as well via an optional third argument."
|
||||
msgstr ""
|
||||
"Ce module aide les scripts à analyser les arguments de ligne de commande "
|
||||
"contenus dans ``sys.argv``. Il prend en charge les mêmes conventions que la "
|
||||
"fonction UNIX :c:func:`getopt` (y compris les significations spéciales des "
|
||||
"arguments de la forme ``-`` et ``--``). De longues options similaires à "
|
||||
"celles prises en charge par le logiciel GNU peuvent également être utilisées "
|
||||
"via un troisième argument facultatif."
|
||||
|
||||
#: ../Doc/library/getopt.rst:26
|
||||
msgid "This module provides two functions and an exception:"
|
||||
msgstr ""
|
||||
msgstr "Ce module fournit deux fonctions et une exception :"
|
||||
|
||||
#: ../Doc/library/getopt.rst:32
|
||||
msgid ""
|
||||
|
@ -62,6 +75,9 @@ msgid ""
|
|||
"arguments are considered also non-options. This is similar to the way non-"
|
||||
"GNU Unix systems work."
|
||||
msgstr ""
|
||||
"Contrairement au :c:func:`getopt` GNU, après un argument n'appartenant pas à "
|
||||
"une option, aucun argument ne sera considéré comme appartenant à une option. "
|
||||
"Ceci est similaire à la façon dont les systèmes UNIX non-GNU fonctionnent."
|
||||
|
||||
#: ../Doc/library/getopt.rst:44
|
||||
msgid ""
|
||||
|
@ -89,6 +105,17 @@ msgid ""
|
|||
"list in the same order in which they were found, thus allowing multiple "
|
||||
"occurrences. Long and short options may be mixed."
|
||||
msgstr ""
|
||||
"La valeur de retour se compose de deux éléments : le premier est une liste "
|
||||
"de paires ``(option, value)``, la deuxième est la liste des arguments de "
|
||||
"programme laissés après que la liste d’options est été dépouillée (il s’agit "
|
||||
"d’une tranche de fin de *args*). Chaque paire option-valeur retournée a "
|
||||
"l’option comme premier élément, préfixée avec un trait d'union pour les "
|
||||
"options courtes (par exemple, ``'-x'``) ou deux tirets pour les options "
|
||||
"longues (par exemple, ``'--long-option'``), et l’argument option comme "
|
||||
"deuxième élément, ou une chaîne vide si le option n’a aucun argument. Les "
|
||||
"options se trouvent dans la liste dans l’ordre dans lequel elles ont été "
|
||||
"trouvées, permettant ainsi plusieurs occurrences. Les options longues et "
|
||||
"courtes peuvent être mélangées."
|
||||
|
||||
#: ../Doc/library/getopt.rst:68
|
||||
msgid ""
|
||||
|
@ -97,6 +124,10 @@ msgid ""
|
|||
"intermixed. The :func:`getopt` function stops processing options as soon as "
|
||||
"a non-option argument is encountered."
|
||||
msgstr ""
|
||||
"Cette fonction fonctionne comme :func:`getopt`, sauf que le mode de *scan* "
|
||||
"GNU est utilisé par défaut. Cela signifie que les arguments option et non-"
|
||||
"option peuvent être **intermixés**. La fonction :func:`getopt` arrête le "
|
||||
"traitement des options dès qu’un argument de non-option est rencontré."
|
||||
|
||||
#: ../Doc/library/getopt.rst:73
|
||||
msgid ""
|
||||
|
@ -104,6 +135,9 @@ msgid ""
|
|||
"environment variable :envvar:`POSIXLY_CORRECT` is set, then option "
|
||||
"processing stops as soon as a non-option argument is encountered."
|
||||
msgstr ""
|
||||
"Si le premier caractère de la chaîne d’options est ``+``, ou si la variable "
|
||||
"d’environnement :envvar:`POSIXLY_CORRECT` est définie, le traitement des "
|
||||
"options s’arrête dès qu’un argument non-option est rencontré."
|
||||
|
||||
#: ../Doc/library/getopt.rst:82
|
||||
msgid ""
|
||||
|
@ -115,6 +149,14 @@ msgid ""
|
|||
"give the error message and related option; if there is no specific option to "
|
||||
"which the exception relates, :attr:`opt` is an empty string."
|
||||
msgstr ""
|
||||
"Cette exception est levée lorsqu’une option non reconnue est trouvée dans la "
|
||||
"liste d’arguments ou lorsqu’une option nécessitant un argument n’en a pas "
|
||||
"reçu. L’argument de l’exception est une chaîne de caractères indiquant la "
|
||||
"cause de l’erreur. Pour les options longues, un argument donné à une option "
|
||||
"qui n’en exige pas un entraîne également le levage de cette exception. Les "
|
||||
"attributs :attr:`msg` et :attr:`opt` donnent le message d’erreur et l’option "
|
||||
"connexe. S’il n’existe aucune option spécifique à laquelle l’exception se "
|
||||
"rapporte, :attr:`opt` est une chaîne vide."
|
||||
|
||||
#: ../Doc/library/getopt.rst:90
|
||||
msgid "Introduced :exc:`GetoptError` as a synonym for :exc:`error`."
|
||||
|
@ -122,19 +164,19 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/getopt.rst:96
|
||||
msgid "Alias for :exc:`GetoptError`; for backward compatibility."
|
||||
msgstr ""
|
||||
msgstr "Alias pour :exc:`GetoptError` ; pour la rétrocompatibilité."
|
||||
|
||||
#: ../Doc/library/getopt.rst:98
|
||||
msgid "An example using only Unix style options:"
|
||||
msgstr ""
|
||||
msgstr "Un exemple utilisant uniquement les options de style UNIX :"
|
||||
|
||||
#: ../Doc/library/getopt.rst:110
|
||||
msgid "Using long option names is equally easy:"
|
||||
msgstr ""
|
||||
msgstr "L’utilisation de noms d’options longs est tout aussi simple :"
|
||||
|
||||
#: ../Doc/library/getopt.rst:123
|
||||
msgid "In a script, typical usage is something like this::"
|
||||
msgstr ""
|
||||
msgstr "Dans un script, l’utilisation typique ressemble à ceci ::"
|
||||
|
||||
#: ../Doc/library/getopt.rst:152
|
||||
msgid ""
|
||||
|
@ -142,11 +184,16 @@ msgid ""
|
|||
"code and more informative help and error messages by using the :mod:"
|
||||
"`argparse` module::"
|
||||
msgstr ""
|
||||
"Notez qu’une interface de ligne de commande équivalente peut être produite "
|
||||
"avec moins de code et des messages d’erreur et d’aide plus informatifs à "
|
||||
"l’aide du module :mod:`argparse` module ::"
|
||||
|
||||
#: ../Doc/library/getopt.rst:167
|
||||
msgid "Module :mod:`argparse`"
|
||||
msgstr ""
|
||||
msgstr "Module :mod:`argparse`"
|
||||
|
||||
#: ../Doc/library/getopt.rst:168
|
||||
msgid "Alternative command line option and argument parsing library."
|
||||
msgstr ""
|
||||
"Option de ligne de commande alternative et bibliothèque d’analyse "
|
||||
"d’arguments."
|
||||
|
|
167
library/heapq.po
167
library/heapq.po
|
@ -18,7 +18,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/heapq.rst:2
|
||||
msgid ":mod:`heapq` --- Heap queue algorithm"
|
||||
msgstr ""
|
||||
msgstr ":mod:`heapq` — File de priorité basée sur un tas"
|
||||
|
||||
#: ../Doc/library/heapq.rst:13
|
||||
msgid "**Source code:** :source:`Lib/heapq.py`"
|
||||
|
@ -29,6 +29,8 @@ msgid ""
|
|||
"This module provides an implementation of the heap queue algorithm, also "
|
||||
"known as the priority queue algorithm."
|
||||
msgstr ""
|
||||
"Ce module expose une implémentation de l'algorithme de file de priorité, "
|
||||
"basée sur un tas."
|
||||
|
||||
#: ../Doc/library/heapq.rst:20
|
||||
msgid ""
|
||||
|
@ -39,6 +41,13 @@ msgid ""
|
|||
"elements are considered to be infinite. The interesting property of a heap "
|
||||
"is that its smallest element is always the root, ``heap[0]``."
|
||||
msgstr ""
|
||||
"Les tas sont des arbres binaires pour lesquels chaque valeur portée par un "
|
||||
"nœud est inférieure ou égale à celle de ses deux fils. Cette implémentation "
|
||||
"utilise des tableaux pour lesquels ``tas[k] <= tas[2*k+1]`` et ``tas[k] <= "
|
||||
"tas[2*k+2]`` pour tout *k*, en commençant la numérotation à zéro. Pour "
|
||||
"contenter l'opérateur de comparaison, les éléments inexistants sont "
|
||||
"considérés comme porteur d'une valeur infinie. L'intérêt du tas est que son "
|
||||
"plus petit élément est toujours la racine, ``tas[0]``."
|
||||
|
||||
#: ../Doc/library/heapq.rst:27
|
||||
msgid ""
|
||||
|
@ -50,6 +59,13 @@ msgid ""
|
|||
"\"max heap\" is more common in texts because of its suitability for in-place "
|
||||
"sorting)."
|
||||
msgstr ""
|
||||
"L'API ci-dessous diffère de la file de priorité classique par deux aspects : "
|
||||
"(a) L'indiçage commence à zéro. Cela complexifie légèrement la relation "
|
||||
"entre l'indice d'un nœud et les indices de ses fils mais est alignée avec "
|
||||
"l'indiçage commençant à zéro que Python utilise. (b) La méthode *pop* "
|
||||
"renvoie le plus petit élément et non le plus grand (appelé « tas-min » dans "
|
||||
"les manuels scolaires ; le « tas-max » étant généralement plus courant dans "
|
||||
"la littérature car il permet le classement sans tampon)."
|
||||
|
||||
#: ../Doc/library/heapq.rst:34
|
||||
msgid ""
|
||||
|
@ -57,12 +73,18 @@ msgid ""
|
|||
"surprises: ``heap[0]`` is the smallest item, and ``heap.sort()`` maintains "
|
||||
"the heap invariant!"
|
||||
msgstr ""
|
||||
"Ces deux points permettent d'aborder le tas comme une liste Python standard "
|
||||
"sans surprise : ``heap[0]`` est le plus petit élément tandis que ``heap."
|
||||
"sort()`` ne modifie pas le tas !"
|
||||
|
||||
#: ../Doc/library/heapq.rst:38
|
||||
msgid ""
|
||||
"To create a heap, use a list initialized to ``[]``, or you can transform a "
|
||||
"populated list into a heap via function :func:`heapify`."
|
||||
msgstr ""
|
||||
"Pour créer un tas, utilisez une liste initialisée à ``[]`` ou bien utilisez "
|
||||
"une liste existante et transformez la en tas à l'aide de la fonction :func:"
|
||||
"`heapify`."
|
||||
|
||||
#: ../Doc/library/heapq.rst:41
|
||||
msgid "The following functions are provided:"
|
||||
|
@ -71,6 +93,8 @@ msgstr "Les fonctions suivantes sont fournies :"
|
|||
#: ../Doc/library/heapq.rst:46
|
||||
msgid "Push the value *item* onto the *heap*, maintaining the heap invariant."
|
||||
msgstr ""
|
||||
"Introduit la valeur *item* dans le tas *heap*, en conservant l'invariance du "
|
||||
"tas."
|
||||
|
||||
#: ../Doc/library/heapq.rst:51
|
||||
msgid ""
|
||||
|
@ -78,6 +102,9 @@ msgid ""
|
|||
"invariant. If the heap is empty, :exc:`IndexError` is raised. To access "
|
||||
"the smallest item without popping it, use ``heap[0]``."
|
||||
msgstr ""
|
||||
"Extraie le plus petit élément de *heap* en préservant l'invariant du tas. Si "
|
||||
"le tas est vide, une exception :exc:`IndexError` est levée. Pour accéder au "
|
||||
"plus petit élément sans le retirer, utilisez ``heap[0]``."
|
||||
|
||||
#: ../Doc/library/heapq.rst:57
|
||||
msgid ""
|
||||
|
@ -85,10 +112,15 @@ msgid ""
|
|||
"*heap*. The combined action runs more efficiently than :func:`heappush` "
|
||||
"followed by a separate call to :func:`heappop`."
|
||||
msgstr ""
|
||||
"Introduit l'élément *item* dans le tas, puis extraie le plus petit élément "
|
||||
"de *heap*. Cette action combinée est plus efficace que :func:`heappush` "
|
||||
"suivie par un appel séparé à :func:`heappop`."
|
||||
|
||||
#: ../Doc/library/heapq.rst:65
|
||||
msgid "Transform list *x* into a heap, in-place, in linear time."
|
||||
msgstr ""
|
||||
"Transforme une liste *x* en un tas, sans utiliser de tampon et en temps "
|
||||
"linéaire."
|
||||
|
||||
#: ../Doc/library/heapq.rst:70
|
||||
msgid ""
|
||||
|
@ -96,6 +128,9 @@ msgid ""
|
|||
"*item*. The heap size doesn't change. If the heap is empty, :exc:"
|
||||
"`IndexError` is raised."
|
||||
msgstr ""
|
||||
"Extraie le plus petit élément de *heap* et introduit le nouvel élément "
|
||||
"*item*. La taille du tas ne change pas. Si le tas est vide, une exception :"
|
||||
"exc:`IndexError` est levée."
|
||||
|
||||
#: ../Doc/library/heapq.rst:73
|
||||
msgid ""
|
||||
|
@ -104,6 +139,10 @@ msgid ""
|
|||
"heap. The pop/push combination always returns an element from the heap and "
|
||||
"replaces it with *item*."
|
||||
msgstr ""
|
||||
"Cette opération en une étape est plus efficace qu'un appel à :func:`heappop` "
|
||||
"suivi d'un appel à :func:`heappush` et est plus appropriée lorsque le tas "
|
||||
"est de taille fixe. La combinaison *pop*/*push* renvoie toujours un élément "
|
||||
"du tas et le remplace par *item*."
|
||||
|
||||
#: ../Doc/library/heapq.rst:78
|
||||
msgid ""
|
||||
|
@ -112,10 +151,15 @@ msgid ""
|
|||
"combination returns the smaller of the two values, leaving the larger value "
|
||||
"on the heap."
|
||||
msgstr ""
|
||||
"La valeur renvoyée peut être plus grande que l'élément *item* ajouté. Si "
|
||||
"cela n'est pas souhaitable, utilisez plutôt :func:`heappushpop` à la place. "
|
||||
"Sa combinaison *push*/*pop* renvoie le plus petit élément des deux valeurs "
|
||||
"et laisse la plus grande sur le tas."
|
||||
|
||||
#: ../Doc/library/heapq.rst:84
|
||||
msgid "The module also offers three general purpose functions based on heaps."
|
||||
msgstr ""
|
||||
"Ce module contient également trois fonctions génériques utilisant les tas."
|
||||
|
||||
#: ../Doc/library/heapq.rst:89
|
||||
msgid ""
|
||||
|
@ -123,6 +167,9 @@ msgid ""
|
|||
"timestamped entries from multiple log files). Returns an :term:`iterator` "
|
||||
"over the sorted values."
|
||||
msgstr ""
|
||||
"Fusionne plusieurs entrées ordonnées en une unique sortie ordonnée (par "
|
||||
"exemple, fusionne des entrées datées provenant de multiples journaux "
|
||||
"applicatifs). Renvoie un :term:`iterator` sur les valeurs ordonnées."
|
||||
|
||||
#: ../Doc/library/heapq.rst:93
|
||||
msgid ""
|
||||
|
@ -130,6 +177,9 @@ msgid ""
|
|||
"does not pull the data into memory all at once, and assumes that each of the "
|
||||
"input streams is already sorted (smallest to largest)."
|
||||
msgstr ""
|
||||
"Similaire à ``sorted(itertools.chain(*iterables))`` mais renvoie un "
|
||||
"itérable, ne stocke pas toutes les données en mémoire en une fois et suppose "
|
||||
"que chaque flux d'entrée est déjà classé (en ordre croissant)."
|
||||
|
||||
#: ../Doc/library/heapq.rst:102
|
||||
msgid ""
|
||||
|
@ -160,10 +210,16 @@ msgid ""
|
|||
"`max` functions. If repeated usage of these functions is required, consider "
|
||||
"turning the iterable into an actual heap."
|
||||
msgstr ""
|
||||
"Les deux fonctions précédentes sont les plus efficaces pour des petites "
|
||||
"valeurs de *n*. Pour de grandes valeurs, il est préférable d'utiliser la "
|
||||
"fonction :func:`sorted`. En outre, lorsque ``n==1``, il est plus efficace "
|
||||
"d'utiliser les fonctions natives :func:`min` et :func:`max`. Si vous devez "
|
||||
"utiliser ces fonctions de façon répétée, il est préférable de transformer "
|
||||
"l'itérable en tas."
|
||||
|
||||
#: ../Doc/library/heapq.rst:134
|
||||
msgid "Basic Examples"
|
||||
msgstr ""
|
||||
msgstr "Exemples simples"
|
||||
|
||||
#: ../Doc/library/heapq.rst:136
|
||||
msgid ""
|
||||
|
@ -171,34 +227,47 @@ msgid ""
|
|||
"pushing all values onto a heap and then popping off the smallest values one "
|
||||
"at a time::"
|
||||
msgstr ""
|
||||
"Un `tri par tas <https://fr.wikipedia.org/wiki/Tri_par_tas>`_ peut être "
|
||||
"implémenté en introduisant toutes les valeurs dans un tas puis en effectuant "
|
||||
"l'extraction des éléments un par un ::"
|
||||
|
||||
#: ../Doc/library/heapq.rst:149
|
||||
msgid ""
|
||||
"This is similar to ``sorted(iterable)``, but unlike :func:`sorted`, this "
|
||||
"implementation is not stable."
|
||||
msgstr ""
|
||||
"Ceci est similaire à ``sorted(iterable)`` mais, contrairement à :func:"
|
||||
"`sorted`, cette implémentation n'est pas stable."
|
||||
|
||||
#: ../Doc/library/heapq.rst:152
|
||||
msgid ""
|
||||
"Heap elements can be tuples. This is useful for assigning comparison values "
|
||||
"(such as task priorities) alongside the main record being tracked::"
|
||||
msgstr ""
|
||||
"Les éléments d'un tas peuvent être des n-uplets. C'est pratique pour "
|
||||
"assigner des valeurs de comparaison (par exemple, des priorités de tâches) "
|
||||
"en plus de l'élément qui est suivi ::"
|
||||
|
||||
#: ../Doc/library/heapq.rst:165
|
||||
msgid "Priority Queue Implementation Notes"
|
||||
msgstr ""
|
||||
msgstr "Notes d'implémentation de la file de priorité"
|
||||
|
||||
#: ../Doc/library/heapq.rst:167
|
||||
msgid ""
|
||||
"A `priority queue <https://en.wikipedia.org/wiki/Priority_queue>`_ is common "
|
||||
"use for a heap, and it presents several implementation challenges:"
|
||||
msgstr ""
|
||||
"Une `file de priorité <https://fr.wikipedia.org/wiki/File_de_priorit"
|
||||
"%C3%A9>`_ est une application courante des tas et présente plusieurs défis "
|
||||
"d'implémentation :"
|
||||
|
||||
#: ../Doc/library/heapq.rst:170
|
||||
msgid ""
|
||||
"Sort stability: how do you get two tasks with equal priorities to be "
|
||||
"returned in the order they were originally added?"
|
||||
msgstr ""
|
||||
"Stabilité du classement : comment s'assurer que deux tâches avec la même "
|
||||
"priorité sont renvoyées dans l'ordre de leur ajout ?"
|
||||
|
||||
#: ../Doc/library/heapq.rst:173
|
||||
msgid ""
|
||||
|
@ -212,12 +281,16 @@ msgid ""
|
|||
"If the priority of a task changes, how do you move it to a new position in "
|
||||
"the heap?"
|
||||
msgstr ""
|
||||
"Si la priorité d'une tâche change, comment la déplacer à sa nouvelle "
|
||||
"position dans le tas ?"
|
||||
|
||||
#: ../Doc/library/heapq.rst:180
|
||||
msgid ""
|
||||
"Or if a pending task needs to be deleted, how do you find it and remove it "
|
||||
"from the queue?"
|
||||
msgstr ""
|
||||
"Si une tâche en attente doit être supprimée, comment la trouver et la "
|
||||
"supprimer de la file ?"
|
||||
|
||||
#: ../Doc/library/heapq.rst:183
|
||||
msgid ""
|
||||
|
@ -227,6 +300,13 @@ msgid ""
|
|||
"returned in the order they were added. And since no two entry counts are the "
|
||||
"same, the tuple comparison will never attempt to directly compare two tasks."
|
||||
msgstr ""
|
||||
"Une solution aux deux premiers problèmes consiste à stocker les entrées sous "
|
||||
"forme de liste à 3 éléments incluant la priorité, le numéro d'ajout et la "
|
||||
"tâche. Le numéro d'ajout sert à briser les égalités de telle sorte que deux "
|
||||
"tâches avec la même priorité sont renvoyées dans l'ordre de leur insertion. "
|
||||
"Puisque deux tâches ne peuvent jamais avoir le même numéro d'ajout, la "
|
||||
"comparaison des triplets ne va jamais chercher à comparer des tâches entre "
|
||||
"elles."
|
||||
|
||||
#: ../Doc/library/heapq.rst:189
|
||||
msgid ""
|
||||
|
@ -234,6 +314,9 @@ msgid ""
|
|||
"changes to its priority or removing it entirely. Finding a task can be done "
|
||||
"with a dictionary pointing to an entry in the queue."
|
||||
msgstr ""
|
||||
"Le problème restant consiste à trouver une tâche en attente et modifier sa "
|
||||
"priorité ou la supprimer. Trouver une tâche peut être réalisé à l'aide d'un "
|
||||
"dictionnaire pointant vers une entrée dans la file."
|
||||
|
||||
#: ../Doc/library/heapq.rst:193
|
||||
msgid ""
|
||||
|
@ -245,7 +328,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/heapq.rst:227
|
||||
msgid "Theory"
|
||||
msgstr ""
|
||||
msgstr "Théorie"
|
||||
|
||||
#: ../Doc/library/heapq.rst:229
|
||||
msgid ""
|
||||
|
@ -254,12 +337,19 @@ msgid ""
|
|||
"elements are considered to be infinite. The interesting property of a heap "
|
||||
"is that ``a[0]`` is always its smallest element."
|
||||
msgstr ""
|
||||
"Les tas sont des tableaux pour lesquels ``a[k] <= a[2*k+1]`` et ``a[k] <= "
|
||||
"a[2*k+2]`` pour tout *k* en comptant les éléments à partir de 0. Pour "
|
||||
"simplifier la comparaison, les éléments inexistants sont considérés comme "
|
||||
"étant infinis. L'intérêt des tas est que ``a[0]`` est toujours leur plus "
|
||||
"petit élément."
|
||||
|
||||
#: ../Doc/library/heapq.rst:234
|
||||
msgid ""
|
||||
"The strange invariant above is meant to be an efficient memory "
|
||||
"representation for a tournament. The numbers below are *k*, not ``a[k]``::"
|
||||
msgstr ""
|
||||
"L'invariant étrange ci-dessus est une représentation efficace en mémoire "
|
||||
"d'un tournoi. Les nombres ci-dessous sont *k* et non ``a[k]`` ::"
|
||||
|
||||
#: ../Doc/library/heapq.rst:247
|
||||
msgid ""
|
||||
|
@ -273,6 +363,17 @@ msgid ""
|
|||
"two cells it tops contain three different items, but the top cell \"wins\" "
|
||||
"over the two topped cells."
|
||||
msgstr ""
|
||||
"Dans l'arbre ci-dessus, chaque nœud *k* a pour enfants ``2*k+1`` et ``2*k"
|
||||
"+2``. Dans les tournois binaires habituels dans les compétitions sportives, "
|
||||
"chaque nœud est le vainqueur des deux nœuds inférieurs et nous pouvons "
|
||||
"tracer le chemin du vainqueur le long de l'arbre afin de voir qui étaient "
|
||||
"ses adversaires. Cependant, dans de nombreuses applications informatiques de "
|
||||
"ces tournois, nous n'avons pas besoin de produire l'historique du vainqueur. "
|
||||
"Afin d'occuper moins de mémoire, on remplace le vainqueur lors de sa "
|
||||
"promotion par un autre élément à un plus bas niveau. La règle devient alors "
|
||||
"qu'un nœud et les deux nœuds qu'il chapeaute contiennent trois éléments "
|
||||
"différents, mais le nœud supérieur « gagne » contre les deux nœuds "
|
||||
"inférieurs."
|
||||
|
||||
#: ../Doc/library/heapq.rst:256
|
||||
msgid ""
|
||||
|
@ -284,6 +385,15 @@ msgid ""
|
|||
"logarithmic on the total number of items in the tree. By iterating over all "
|
||||
"items, you get an O(n log n) sort."
|
||||
msgstr ""
|
||||
"Si cet invariant de tas est vérifié à tout instant, alors l'élément à "
|
||||
"l'indice 0 est le vainqueur global. L'algorithme le plus simple pour le "
|
||||
"retirer et trouver le vainqueur « suivant » consiste à déplacer un perdant "
|
||||
"(par exemple le nœud 30 dans le diagramme ci-dessus) à la position 0, puis à "
|
||||
"faire redescendre cette nouvelle racine dans l'arbre en échangeant sa valeur "
|
||||
"avec celle d'un de ses fils jusqu'à ce que l'invariant soit rétabli. Cette "
|
||||
"approche a un coût logarithmique par rapport au nombre total d'éléments dans "
|
||||
"l'arbre. En itérant sur tous les éléments, le classement s'effectue en O(n "
|
||||
"log n) opérations."
|
||||
|
||||
#: ../Doc/library/heapq.rst:263
|
||||
msgid ""
|
||||
|
@ -296,6 +406,16 @@ msgid ""
|
|||
"easily go into the heap. So, a heap is a good structure for implementing "
|
||||
"schedulers (this is what I used for my MIDI sequencer :-)."
|
||||
msgstr ""
|
||||
"Une propriété agréable de cet algorithme est qu'il possible d'insérer "
|
||||
"efficacement de nouveaux éléments en cours de classement, du moment que les "
|
||||
"éléments insérés ne sont pas « meilleurs » que le dernier élément qui a été "
|
||||
"extrait. Ceci s'avère très utile dans des simulations où l'arbre contient la "
|
||||
"liste des événements arrivants et que la condition de « victoire » est le "
|
||||
"plus petit temps d'exécution planifié. Lorsqu'un événement programme "
|
||||
"l'exécution d'autres événements, ceux-ci sont planifiés pour le futur et "
|
||||
"peuvent donc rejoindre le tas. Ainsi, le tas est une bonne structure pour "
|
||||
"implémenter un ordonnanceur (et c'est ce que j'ai utilisé pour mon "
|
||||
"séquenceur MIDI ☺)."
|
||||
|
||||
#: ../Doc/library/heapq.rst:272
|
||||
msgid ""
|
||||
|
@ -305,6 +425,11 @@ msgid ""
|
|||
"average case. However, there are other representations which are more "
|
||||
"efficient overall, yet the worst cases might be terrible."
|
||||
msgstr ""
|
||||
"Plusieurs structures ont été étudiées en détail pour implémenter des "
|
||||
"ordonnanceurs et les tas sont bien adaptés : ils sont raisonnablement "
|
||||
"rapides, leur vitesse est presque constante et le pire cas ne diffère pas "
|
||||
"trop du cas moyen. S'il existe des représentations qui sont plus efficaces "
|
||||
"en général, les pires cas peuvent être terriblement mauvais."
|
||||
|
||||
#: ../Doc/library/heapq.rst:278
|
||||
msgid ""
|
||||
|
@ -319,6 +444,18 @@ msgid ""
|
|||
"which are twice the size of the memory for random input, and much better for "
|
||||
"input fuzzily ordered."
|
||||
msgstr ""
|
||||
"Les tas sont également très utiles pour ordonner les données sur de gros "
|
||||
"disques. Vous savez probablement qu'un gros tri implique la production de "
|
||||
"séquences pré-classées (dont la taille est généralement liée à la quantité "
|
||||
"de mémoire CPU disponible), suivie par une passe de fusion qui est "
|
||||
"généralement organisée de façon très intelligente [#]_. Il est très "
|
||||
"important que le classement initial produise des séquences les plus longues "
|
||||
"possibles. Les tournois sont une bonne façon d'arriver à ce résultat. Si, en "
|
||||
"utilisant toute la mémoire disponible pour stocker un tournoi, vous "
|
||||
"remplacez et faites percoler les éléments qui s'avèrent acceptables pour la "
|
||||
"séquence courante, vous produirez des séquences d'une taille égale au double "
|
||||
"de la mémoire pour une entrée aléatoire et bien mieux pour une entrée "
|
||||
"approximativement triée."
|
||||
|
||||
#: ../Doc/library/heapq.rst:288
|
||||
msgid ""
|
||||
|
@ -330,12 +467,23 @@ msgid ""
|
|||
"the first heap is melting. When the first heap completely vanishes, you "
|
||||
"switch heaps and start a new run. Clever and quite effective!"
|
||||
msgstr ""
|
||||
"Qui plus est, si vous écrivez l'élément 0 sur le disque et que vous recevez "
|
||||
"en entrée un élément qui n'est pas adapté au tournoi actuel (parce que sa "
|
||||
"valeur « gagne » par rapport à la dernière valeur de sortie), alors il ne "
|
||||
"peut pas être stocké dans le tas donc la taille de ce dernier diminue. La "
|
||||
"mémoire libérée peut être réutilisée immédiatement pour progressivement "
|
||||
"construire un deuxième tas, qui croit à la même vitesse que le premier "
|
||||
"décroît. Lorsque le premier tas a complètement disparu, vous échangez les "
|
||||
"tas et démarrez une nouvelle séquence. Malin et plutôt efficace !"
|
||||
|
||||
#: ../Doc/library/heapq.rst:296
|
||||
msgid ""
|
||||
"In a word, heaps are useful memory structures to know. I use them in a few "
|
||||
"applications, and I think it is good to keep a 'heap' module around. :-)"
|
||||
msgstr ""
|
||||
"Pour résumer, les tas sont des structures de données qu'il est bon de "
|
||||
"connaître. Je les utilise dans quelques applications et je pense qu'il est "
|
||||
"bon de garder le module *heap* sous le coude. ☺"
|
||||
|
||||
#: ../Doc/library/heapq.rst:300
|
||||
msgid "Footnotes"
|
||||
|
@ -353,3 +501,14 @@ msgid ""
|
|||
"Believe me, real good tape sorts were quite spectacular to watch! From all "
|
||||
"times, sorting has always been a Great Art! :-)"
|
||||
msgstr ""
|
||||
"Les algorithmes de répartition de charge pour les disques, courants de nos "
|
||||
"jours, sont plus embêtants qu'utiles, en raison de la capacité des disques à "
|
||||
"réaliser des accès aléatoires. Sur les périphériques qui ne peuvent faire "
|
||||
"que de la lecture séquentielle, comme les gros lecteurs à bandes, le besoin "
|
||||
"était différent et il fallait être malin pour s'assurer (bien à l'avance) "
|
||||
"que chaque mouvement de bande serait le plus efficace possible (c'est-à-dire "
|
||||
"participerait au mieux à l'« avancée » de la fusion). Certaines cassettes "
|
||||
"pouvaient même lire à l'envers et cela était aussi utilisé pour éviter de "
|
||||
"remonter dans le temps. Croyez-moi, les bons tris sur bandes étaient "
|
||||
"spectaculaires à regarder ! Depuis la nuit des temps, trier a toujours été "
|
||||
"le Grand Art ! ☺"
|
||||
|
|
422
library/idle.po
422
library/idle.po
File diff suppressed because it is too large
Load Diff
|
@ -1206,7 +1206,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/io.rst:880
|
||||
msgid "Performance"
|
||||
msgstr ""
|
||||
msgstr "Performances"
|
||||
|
||||
#: ../Doc/library/io.rst:883
|
||||
msgid "Binary I/O"
|
||||
|
|
|
@ -18,7 +18,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/numbers.rst:2
|
||||
msgid ":mod:`numbers` --- Numeric abstract base classes"
|
||||
msgstr ""
|
||||
msgstr ":mod:`numbers` — Classes de base abstraites numériques"
|
||||
|
||||
#: ../Doc/library/numbers.rst:10
|
||||
msgid ""
|
||||
|
@ -27,16 +27,23 @@ msgid ""
|
|||
"more operations. None of the types defined in this module can be "
|
||||
"instantiated."
|
||||
msgstr ""
|
||||
"Le module :mod:`numbers` (:pep:`3141`) définit une hiérarchie de :term:"
|
||||
"`classes de base abstraites<abstract base class>` numériques qui définissent "
|
||||
"progressivement plus d'opérations. Aucun des types définis dans ce module ne "
|
||||
"peut être instancié."
|
||||
|
||||
#: ../Doc/library/numbers.rst:17
|
||||
msgid ""
|
||||
"The root of the numeric hierarchy. If you just want to check if an argument "
|
||||
"*x* is a number, without caring what kind, use ``isinstance(x, Number)``."
|
||||
msgstr ""
|
||||
"La base de la hiérarchie numérique. Si vous voulez juste vérifier qu'un "
|
||||
"argument *x* est un nombre, peu importe le type, utilisez ``isinstance(x, "
|
||||
"Number)``."
|
||||
|
||||
#: ../Doc/library/numbers.rst:22
|
||||
msgid "The numeric tower"
|
||||
msgstr ""
|
||||
msgstr "La tour numérique"
|
||||
|
||||
#: ../Doc/library/numbers.rst:26
|
||||
msgid ""
|
||||
|
@ -46,26 +53,35 @@ msgid ""
|
|||
"``, ``*``, ``/``, :func:`abs`, :meth:`conjugate`, ``==``, and ``!=``. All "
|
||||
"except ``-`` and ``!=`` are abstract."
|
||||
msgstr ""
|
||||
"Les sous-classes de ce type décrivent des nombres complexes et incluent les "
|
||||
"opérations qui fonctionnent sur le type natif :class:`complex`. Ce sont : "
|
||||
"les conversions vers :class:`complex` et :class:`bool`, :attr:`.real`, :attr:"
|
||||
"`.imag`, ``+``, ``-``, ``*``, ``/``, :func:`abs`, :meth:`conjugate`, ``==`` "
|
||||
"et ``!=``. Toutes sauf ``-`` et ``!=`` sont abstraites."
|
||||
|
||||
#: ../Doc/library/numbers.rst:34
|
||||
msgid "Abstract. Retrieves the real component of this number."
|
||||
msgstr ""
|
||||
msgstr "Abstrait. Récupère la partie réelle de ce nombre."
|
||||
|
||||
#: ../Doc/library/numbers.rst:38
|
||||
msgid "Abstract. Retrieves the imaginary component of this number."
|
||||
msgstr ""
|
||||
msgstr "Abstrait. Retrouve la partie imaginaire de ce nombre."
|
||||
|
||||
#: ../Doc/library/numbers.rst:42
|
||||
msgid ""
|
||||
"Abstract. Returns the complex conjugate. For example, ``(1+3j).conjugate() "
|
||||
"== (1-3j)``."
|
||||
msgstr ""
|
||||
"Abstrait. Renvoie le complexe conjugué. Par exemple, ``(1+3j).conjugate() == "
|
||||
"(1-3j)``."
|
||||
|
||||
#: ../Doc/library/numbers.rst:47
|
||||
msgid ""
|
||||
"To :class:`Complex`, :class:`Real` adds the operations that work on real "
|
||||
"numbers."
|
||||
msgstr ""
|
||||
":class:`Real` ajoute les opérations qui fonctionnent sur les nombres réels "
|
||||
"à :class:`Complex`."
|
||||
|
||||
#: ../Doc/library/numbers.rst:50
|
||||
msgid ""
|
||||
|
@ -73,12 +89,17 @@ msgid ""
|
|||
"func:`round`, :func:`math.floor`, :func:`math.ceil`, :func:`divmod`, ``//``, "
|
||||
"``%``, ``<``, ``<=``, ``>``, and ``>=``."
|
||||
msgstr ""
|
||||
"En bref, celles-ci sont : une conversion vers :class:`float`, :func:`math."
|
||||
"trunc`, :func:`round`, :func:`math.floor`, :func:`math.ceil`, :func:"
|
||||
"`divmod`, ``//``, ``%``, ``<``, ``<=``, ``>`` et ``>=``."
|
||||
|
||||
#: ../Doc/library/numbers.rst:54
|
||||
msgid ""
|
||||
"Real also provides defaults for :func:`complex`, :attr:`~Complex.real`, :"
|
||||
"attr:`~Complex.imag`, and :meth:`~Complex.conjugate`."
|
||||
msgstr ""
|
||||
"*Real* fournit également des valeurs par défaut pour :func:`complex`, :attr:"
|
||||
"`~Complex.real`, :attr:`~Complex.imag` et :meth:`~Complex.conjugate`."
|
||||
|
||||
#: ../Doc/library/numbers.rst:60
|
||||
msgid ""
|
||||
|
@ -86,6 +107,9 @@ msgid ""
|
|||
"`~Rational.denominator` properties, which should be in lowest terms. With "
|
||||
"these, it provides a default for :func:`float`."
|
||||
msgstr ""
|
||||
"Dérive :class:`Real` et ajoute les propriétés :attr:`~Rational.numerator` "
|
||||
"et :attr:`~Rational.denominator` qui doivent être les plus petits possible. "
|
||||
"Avec celles-ci, il fournit une valeur par défaut pour :func:`float`."
|
||||
|
||||
#: ../Doc/library/numbers.rst:67 ../Doc/library/numbers.rst:71
|
||||
msgid "Abstract."
|
||||
|
@ -98,10 +122,15 @@ msgid ""
|
|||
"`~Rational.denominator`. Adds abstract methods for ``**`` and bit-string "
|
||||
"operations: ``<<``, ``>>``, ``&``, ``^``, ``|``, ``~``."
|
||||
msgstr ""
|
||||
"Dérive :class:`Rational` et ajoute une conversion en :class:`int`. Fournit "
|
||||
"des valeurs par défaut pour :func:`float`, :attr:`~Rational.numerator` et :"
|
||||
"attr:`~Rational.denominator`. Ajoute des méthodes abstraites pour ``**`` et "
|
||||
"les opérations au niveau des bits: ``<<``, ``>>``, ``&``, ``^``, ``|``, "
|
||||
"``~``."
|
||||
|
||||
#: ../Doc/library/numbers.rst:83
|
||||
msgid "Notes for type implementors"
|
||||
msgstr ""
|
||||
msgstr "Notes pour implémenter des types"
|
||||
|
||||
#: ../Doc/library/numbers.rst:85
|
||||
msgid ""
|
||||
|
@ -110,10 +139,15 @@ msgid ""
|
|||
"the real numbers. For example, :class:`fractions.Fraction` implements :func:"
|
||||
"`hash` as follows::"
|
||||
msgstr ""
|
||||
"Les développeurs doivent veiller à ce que des nombres égaux soient bien "
|
||||
"égaux lors de comparaisons et à ce qu'ils soient hachés aux mêmes valeurs. "
|
||||
"Cela peut être subtil s'il y a deux dérivations différentes des nombres "
|
||||
"réels. Par exemple, :class:`fractions.Fraction` implémente :func:`hash` "
|
||||
"comme suit ::"
|
||||
|
||||
#: ../Doc/library/numbers.rst:104
|
||||
msgid "Adding More Numeric ABCs"
|
||||
msgstr ""
|
||||
msgstr "Ajouter plus d'ABC numériques"
|
||||
|
||||
#: ../Doc/library/numbers.rst:106
|
||||
msgid ""
|
||||
|
@ -121,10 +155,14 @@ msgid ""
|
|||
"poor hierarchy if it precluded the possibility of adding those. You can add "
|
||||
"``MyFoo`` between :class:`Complex` and :class:`Real` with::"
|
||||
msgstr ""
|
||||
"Il est bien entendu possible de créer davantage d’ABC pour les nombres et "
|
||||
"cette hiérarchie serait médiocre si elle excluait la possibilité d'en "
|
||||
"ajouter. Vous pouvez ajouter ``MyFoo`` entre :class:`Complex` et :class:"
|
||||
"`Real` ainsi ::"
|
||||
|
||||
#: ../Doc/library/numbers.rst:116
|
||||
msgid "Implementing the arithmetic operations"
|
||||
msgstr ""
|
||||
msgstr "Implémentation des opérations arithmétiques"
|
||||
|
||||
#: ../Doc/library/numbers.rst:118
|
||||
msgid ""
|
||||
|
@ -134,6 +172,12 @@ msgid ""
|
|||
"there. For subtypes of :class:`Integral`, this means that :meth:`__add__` "
|
||||
"and :meth:`__radd__` should be defined as::"
|
||||
msgstr ""
|
||||
"Nous voulons implémenter les opérations arithmétiques de sorte que les "
|
||||
"opérations en mode mixte appellent une implémentation dont l'auteur connaît "
|
||||
"les types des deux arguments, ou convertissent chacun dans le type natif le "
|
||||
"plus proche et effectuent l'opération sur ces types. Pour les sous-types de :"
|
||||
"class:`Integral`, cela signifie que :meth:`__add__` et :meth:`__radd__` "
|
||||
"devraient être définis comme suit ::"
|
||||
|
||||
#: ../Doc/library/numbers.rst:149
|
||||
msgid ""
|
||||
|
@ -143,10 +187,16 @@ msgid ""
|
|||
"an instance of ``A``, which is a subtype of :class:`Complex` (``a : A <: "
|
||||
"Complex``), and ``b : B <: Complex``. I'll consider ``a + b``:"
|
||||
msgstr ""
|
||||
"Il existe 5 cas différents pour une opération de type mixte sur des sous-"
|
||||
"classes de :class:`Complex`. Nous nous référerons à tout le code ci-dessus "
|
||||
"qui ne se réfère pas à ``MyIntegral`` et ``OtherTypeIKnowAbout`` comme "
|
||||
"\"expression générique\". ``a`` est une instance de ``A``, qui est un sous-"
|
||||
"type de :class:`Complex` (``a : A <: Complex``) et ``b : B <: Complex``. "
|
||||
"Considérons ``a + b``:"
|
||||
|
||||
#: ../Doc/library/numbers.rst:156
|
||||
msgid "If ``A`` defines an :meth:`__add__` which accepts ``b``, all is well."
|
||||
msgstr ""
|
||||
msgstr "Si ``A`` définit une :meth:`__add__` qui accepte ``b``, tout va bien."
|
||||
|
||||
#: ../Doc/library/numbers.rst:158
|
||||
msgid ""
|
||||
|
@ -156,18 +206,27 @@ msgid ""
|
|||
"`NotImplemented` from :meth:`__add__`. (Or ``A`` may not implement :meth:"
|
||||
"`__add__` at all.)"
|
||||
msgstr ""
|
||||
"Si ``A`` fait appel au code générique et que celui-ci renvoie une valeur de :"
|
||||
"meth:`__add__`, nous manquons la possibilité que ``B`` définisse une :meth:"
|
||||
"`__radd__` plus intelligent, donc le code générique devrait retourner :const:"
|
||||
"`NotImplemented` dans :meth:`__add__` (ou alors ``A`` ne doit pas "
|
||||
"implémenter :meth:`__add__` du tout.)"
|
||||
|
||||
#: ../Doc/library/numbers.rst:164
|
||||
msgid ""
|
||||
"Then ``B``'s :meth:`__radd__` gets a chance. If it accepts ``a``, all is "
|
||||
"well."
|
||||
msgstr ""
|
||||
"Alors :meth:`__radd__` de ``B`` a une chance. si elle accepte ``a``, tout va "
|
||||
"bien."
|
||||
|
||||
#: ../Doc/library/numbers.rst:166
|
||||
msgid ""
|
||||
"If it falls back to the boilerplate, there are no more possible methods to "
|
||||
"try, so this is where the default implementation should live."
|
||||
msgstr ""
|
||||
"Si elle fait appel au code générique, il n'y a plus de méthode possible à "
|
||||
"essayer, c'est donc ici que l'implémentation par défaut intervient."
|
||||
|
||||
#: ../Doc/library/numbers.rst:169
|
||||
msgid ""
|
||||
|
@ -175,6 +234,9 @@ msgid ""
|
|||
"because it was implemented with knowledge of ``A``, so it can handle those "
|
||||
"instances before delegating to :class:`Complex`."
|
||||
msgstr ""
|
||||
"Si ``B < : A```, Python essaie ``B.__radd__`` avant ``A.__add__``. C'est "
|
||||
"valable parce qu'elle est implémentée avec la connaissance de ``A``, donc "
|
||||
"elle peut gérer ces instances avant de déléguer à :class:`Complex`."
|
||||
|
||||
#: ../Doc/library/numbers.rst:174
|
||||
msgid ""
|
||||
|
@ -182,6 +244,9 @@ msgid ""
|
|||
"then the appropriate shared operation is the one involving the built in :"
|
||||
"class:`complex`, and both :meth:`__radd__` s land there, so ``a+b == b+a``."
|
||||
msgstr ""
|
||||
"Si ``A <: Complex`` et ``B <: Real`` sans autre information, alors "
|
||||
"l'opération commune appropriée est celle impliquant :class:`complex` et les "
|
||||
"deux :meth:`__radd__` atterrissent à cet endroit, donc ``a+b == b+a``."
|
||||
|
||||
#: ../Doc/library/numbers.rst:179
|
||||
msgid ""
|
||||
|
@ -190,3 +255,7 @@ msgid ""
|
|||
"reverse instances of any given operator. For example, :class:`fractions."
|
||||
"Fraction` uses::"
|
||||
msgstr ""
|
||||
"Comme la plupart des opérations sur un type donné seront très similaires, il "
|
||||
"peut être utile de définir une fonction accessoire qui génère les instances "
|
||||
"résultantes et inverses d'un opérateur donné. Par exemple, :class:`fractions."
|
||||
"Fraction` utilise ::"
|
||||
|
|
|
@ -18,7 +18,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/os.path.rst:2
|
||||
msgid ":mod:`os.path` --- Common pathname manipulations"
|
||||
msgstr ""
|
||||
msgstr ":mod:`os.path` — manipulation courante des chemins"
|
||||
|
||||
#: ../Doc/library/os.path.rst:9
|
||||
msgid ""
|
||||
|
@ -40,6 +40,11 @@ msgid ""
|
|||
"explicitly when an application desires shell-like path expansion. (See also "
|
||||
"the :mod:`glob` module.)"
|
||||
msgstr ""
|
||||
"Contrairement à une invite de commandes Unix, Python ne fait aucune "
|
||||
"extension de chemin *automatique*. Des fonctions telles que :func:"
|
||||
"`expanduser` et :func:`expandvars` peuvent être appelées explicitement "
|
||||
"lorsqu'une application souhaite une extension de chemin semblable à celui "
|
||||
"d'une invite de commande (voir aussi le module :mod:`glob`)."
|
||||
|
||||
#: ../Doc/library/os.path.rst:26
|
||||
msgid ""
|
||||
|
@ -51,14 +56,21 @@ msgid ""
|
|||
"path that is *always* in one of the different formats. They all have the "
|
||||
"same interface:"
|
||||
msgstr ""
|
||||
"Comme les différents systèmes d'exploitation ont des conventions de noms de "
|
||||
"chemins différentes, il existe plusieurs versions de ce module dans la "
|
||||
"bibliothèque standard. Le module :mod:`os.path` est toujours le module de "
|
||||
"chemin adapté au système d'exploitation sur lequel Python tourne, et donc "
|
||||
"adapté pour les chemins locaux. Cependant, vous pouvez également importer et "
|
||||
"utiliser les modules individuels si vous voulez manipuler un chemin qui est "
|
||||
"*toujours* dans l'un des différents formats. Ils ont tous la même interface :"
|
||||
|
||||
#: ../Doc/library/os.path.rst:34
|
||||
msgid ":mod:`posixpath` for UNIX-style paths"
|
||||
msgstr ""
|
||||
msgstr ":mod:`posixpath` pour les chemins de type UNIX"
|
||||
|
||||
#: ../Doc/library/os.path.rst:35
|
||||
msgid ":mod:`ntpath` for Windows paths"
|
||||
msgstr ""
|
||||
msgstr ":mod:`ntpath` pour les chemins Windows"
|
||||
|
||||
#: ../Doc/library/os.path.rst:36
|
||||
msgid ":mod:`macpath` for old-style MacOS paths"
|
||||
|
@ -74,6 +86,9 @@ msgid ""
|
|||
"platforms, this is equivalent to calling the function :func:`normpath` as "
|
||||
"follows: ``normpath(join(os.getcwd(), path))``."
|
||||
msgstr ""
|
||||
"Renvoie une version absolue et normalisée du chemin d'accès *path*. Sur la "
|
||||
"plupart des plates-formes, cela équivaut à appeler la fonction :func:"
|
||||
"`normpath` comme suit : ``normpath(join(os.getcwd(), chemin))```."
|
||||
|
||||
#: ../Doc/library/os.path.rst:51
|
||||
msgid ""
|
||||
|
@ -83,6 +98,11 @@ msgid ""
|
|||
"program; where :program:`basename` for ``'/foo/bar/'`` returns ``'bar'``, "
|
||||
"the :func:`basename` function returns an empty string (``''``)."
|
||||
msgstr ""
|
||||
"Renvoie le nom de base du chemin d'accès *path*. C'est le second élément de "
|
||||
"la paire renvoyée en passant *path* à la fonction :func:`split`. Notez que "
|
||||
"le résultat de cette fonction est différent de celui du programme Unix :"
|
||||
"program:`basename` ; là où :program:`basename` pour ``'/foo/bar/'`` renvoie "
|
||||
"``'bar'``, la fonction :func:`basename` renvoie une chaîne vide (``''``)."
|
||||
|
||||
#: ../Doc/library/os.path.rst:61
|
||||
msgid ""
|
||||
|
|
|
@ -18,7 +18,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/parser.rst:3
|
||||
msgid ":mod:`parser` --- Access Python parse trees"
|
||||
msgstr ""
|
||||
msgstr ":mod:`parser` — Accès aux arbres syntaxiques"
|
||||
|
||||
#: ../Doc/library/parser.rst:20
|
||||
msgid ""
|
||||
|
@ -30,6 +30,13 @@ msgid ""
|
|||
"in a manner identical to the code forming the application. It is also "
|
||||
"faster."
|
||||
msgstr ""
|
||||
"Le module :mod:`parser` expose une interface à l'analyseur et au compilateur "
|
||||
"de byte-code internes de Python. Son objectif principal est de permettre à "
|
||||
"du code Python de modifier l'arbre syntaxique d'une expression Python puis "
|
||||
"de la rendre exécutable. Cette approche est plus fiable que celle consistant "
|
||||
"à manipuler des chaines de caractères, puisque l'analyse est faite avec le "
|
||||
"même analyseur que celui utilisé pour le code de l'application. C'est aussi "
|
||||
"plus rapide."
|
||||
|
||||
#: ../Doc/library/parser.rst:29
|
||||
msgid ""
|
||||
|
@ -37,6 +44,9 @@ msgid ""
|
|||
"Syntax Tree (AST) generation and compilation stage, using the :mod:`ast` "
|
||||
"module."
|
||||
msgstr ""
|
||||
"À partir de Python 2.5, il est plus pratique de faire ces manipulations "
|
||||
"entre la génération de l'AST (*Abstract Syntax Tree*) et la compilation, en "
|
||||
"utilisant le module :mod:`ast`."
|
||||
|
||||
#: ../Doc/library/parser.rst:33
|
||||
msgid ""
|
||||
|
@ -54,6 +64,10 @@ msgid ""
|
|||
"editing the parse trees for Python code, but some examples of using the :mod:"
|
||||
"`parser` module are presented."
|
||||
msgstr ""
|
||||
"Certaines particularités de ce module sont importantes à retenir pour en "
|
||||
"faire un bon usage. Ce n'est pas un tutoriel sur la modification d'arbres "
|
||||
"syntaxiques Python, mais certains exemples d'utilisation du module :mod:"
|
||||
"`parser` sont présentés."
|
||||
|
||||
#: ../Doc/library/parser.rst:44
|
||||
msgid ""
|
||||
|
|
|
@ -31,6 +31,10 @@ msgid ""
|
|||
"support file copying and removal. For operations on individual files, see "
|
||||
"also the :mod:`os` module."
|
||||
msgstr ""
|
||||
"Le module :mod:`shutil` propose des opérations de haut niveau sur les "
|
||||
"fichiers et ensembles de fichiers. En particulier, des fonctions pour copier "
|
||||
"et déplacer les fichiers sont proposées. Pour les opérations individuelles "
|
||||
"sur les fichiers, reportez-vous au module :mod:`os`."
|
||||
|
||||
#: ../Doc/library/shutil.rst:24
|
||||
msgid ""
|
||||
|
@ -46,10 +50,16 @@ msgid ""
|
|||
"be correct. On Windows, file owners, ACLs and alternate data streams are not "
|
||||
"copied."
|
||||
msgstr ""
|
||||
"Sur les plateformes POSIX, cela signifie que le propriétaire et le groupe du "
|
||||
"fichier sont perdus, ainsi que les *ACLs*. Sur Mac OS, le clonage de "
|
||||
"ressource et autres métadonnées ne sont pas utilisés. Cela signifie que les "
|
||||
"ressources seront perdues et que le type de fichier et les codes créateur ne "
|
||||
"seront pas corrects. Sur Windows, les propriétaires des fichiers, *ACLs* et "
|
||||
"flux de données alternatifs ne sont pas copiés."
|
||||
|
||||
#: ../Doc/library/shutil.rst:37
|
||||
msgid "Directory and files operations"
|
||||
msgstr ""
|
||||
msgstr "Opérations sur les répertoires et les fichiers"
|
||||
|
||||
#: ../Doc/library/shutil.rst:41
|
||||
msgid ""
|
||||
|
@ -61,6 +71,13 @@ msgid ""
|
|||
"the *fsrc* object is not 0, only the contents from the current file position "
|
||||
"to the end of the file will be copied."
|
||||
msgstr ""
|
||||
"Copie le contenu de l'objet fichier *fsrc* dans l'objet fichier *fdst*. "
|
||||
"L'entier *length*, si spécifié, est la taille du tampon. En particulier, une "
|
||||
"valeur de *length* négative signifie la copie des données sans découper la "
|
||||
"source en morceaux ; par défaut les données sont lues par morceaux pour "
|
||||
"éviter la consommation mémoire non-contrôlée. À noter que si la position "
|
||||
"courante dans l'objet *fsrc* n'est pas 0, seul le contenu depuis la position "
|
||||
"courante jusqu'à la fin est copié."
|
||||
|
||||
#: ../Doc/library/shutil.rst:52
|
||||
msgid ""
|
||||
|
|
|
@ -124,7 +124,7 @@ msgstr "``'r'``"
|
|||
|
||||
#: ../Doc/library/sunau.rst:50
|
||||
msgid "Read only mode."
|
||||
msgstr ""
|
||||
msgstr "Mode lecture seule."
|
||||
|
||||
#: ../Doc/library/sunau.rst:53
|
||||
msgid "``'w'``"
|
||||
|
@ -132,7 +132,7 @@ msgstr "``'w'``"
|
|||
|
||||
#: ../Doc/library/sunau.rst:53
|
||||
msgid "Write only mode."
|
||||
msgstr ""
|
||||
msgstr "Mode écriture seule."
|
||||
|
||||
#: ../Doc/library/sunau.rst:55
|
||||
msgid "Note that it does not allow read/write files."
|
||||
|
@ -146,7 +146,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/sunau.rst:63
|
||||
msgid "A synonym for :func:`.open`, maintained for backwards compatibility."
|
||||
msgstr ""
|
||||
msgstr "Un synonyme de :func:`.open`, maintenu pour la rétrocompatibilité."
|
||||
|
||||
#: ../Doc/library/sunau.rst:66
|
||||
msgid "The :mod:`sunau` module defines the following exception:"
|
||||
|
@ -202,15 +202,15 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/sunau.rst:125
|
||||
msgid "Returns sample width in bytes."
|
||||
msgstr ""
|
||||
msgstr "Renvoie la largeur de l'échantillon en octets."
|
||||
|
||||
#: ../Doc/library/sunau.rst:130
|
||||
msgid "Returns sampling frequency."
|
||||
msgstr ""
|
||||
msgstr "Renvoie la fréquence d'échantillonnage."
|
||||
|
||||
#: ../Doc/library/sunau.rst:135
|
||||
msgid "Returns number of audio frames."
|
||||
msgstr ""
|
||||
msgstr "Renvoie le nombre de trames audio."
|
||||
|
||||
#: ../Doc/library/sunau.rst:140
|
||||
msgid ""
|
||||
|
@ -240,13 +240,17 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/sunau.rst:166
|
||||
msgid "Rewind the file pointer to the beginning of the audio stream."
|
||||
msgstr ""
|
||||
msgstr "Remet le pointeur de fichier au début du flux audio."
|
||||
|
||||
#: ../Doc/library/sunau.rst:168
|
||||
msgid ""
|
||||
"The following two methods define a term \"position\" which is compatible "
|
||||
"between them, and is otherwise implementation dependent."
|
||||
msgstr ""
|
||||
"Les deux fonctions suivantes utilisent le vocabulaire \"position\". Ces "
|
||||
"positions sont compatible entre elles, la \"position\" de l'un est "
|
||||
"compatible avec la \"position\" de l'autre. Cette position est dépendante de "
|
||||
"l'implémentation."
|
||||
|
||||
#: ../Doc/library/sunau.rst:174
|
||||
msgid ""
|
||||
|
@ -268,11 +272,11 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/sunau.rst:189
|
||||
msgid "Returns ``None``."
|
||||
msgstr ""
|
||||
msgstr "Renvoie ``None``."
|
||||
|
||||
#: ../Doc/library/sunau.rst:194
|
||||
msgid "Raise an error."
|
||||
msgstr ""
|
||||
msgstr "Lève une erreur."
|
||||
|
||||
#: ../Doc/library/sunau.rst:200
|
||||
msgid "AU_write Objects"
|
||||
|
@ -286,7 +290,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/sunau.rst:207
|
||||
msgid "Set the number of channels."
|
||||
msgstr ""
|
||||
msgstr "Définit le nombre de canaux."
|
||||
|
||||
#: ../Doc/library/sunau.rst:212
|
||||
msgid "Set the sample width (in bytes.)"
|
||||
|
@ -323,7 +327,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/sunau.rst:247
|
||||
msgid "Write audio frames, without correcting *nframes*."
|
||||
msgstr ""
|
||||
msgstr "Écrit les trames audio sans corriger *nframes*."
|
||||
|
||||
#: ../Doc/library/sunau.rst:252
|
||||
msgid "Write audio frames and make sure *nframes* is correct."
|
||||
|
|
|
@ -274,7 +274,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/sysconfig.rst:162
|
||||
msgid "Other functions"
|
||||
msgstr ""
|
||||
msgstr "Autres fonctions"
|
||||
|
||||
#: ../Doc/library/sysconfig.rst:166
|
||||
msgid ""
|
||||
|
|
|
@ -37,6 +37,13 @@ msgid ""
|
|||
"provided. The :mod:`threading` module provides an easier to use and higher-"
|
||||
"level threading API built on top of this module."
|
||||
msgstr ""
|
||||
"Ce module fournit les primitives de bas niveau pour travailler avec de "
|
||||
"multiples fils d'exécution (aussi appelés :dfn:`light-weight processes` ou :"
|
||||
"dfn:`tasks`) — plusieurs fils d'exécution de contrôle partagent leur espace "
|
||||
"de données global. Pour la synchronisation, de simples verrous (aussi "
|
||||
"appelés des :dfn:`mutexes` ou des :dfn:`binary semaphores`) sont fournis. Le "
|
||||
"module :mod:`threading` fournit une API de fils d'exécution de haut niveau, "
|
||||
"plus facile à utiliser et construite à partir de ce module."
|
||||
|
||||
#: ../Doc/library/thread.rst:31
|
||||
msgid ""
|
||||
|
@ -80,6 +87,8 @@ msgid ""
|
|||
"Raise the :exc:`SystemExit` exception. When not caught, this will cause the "
|
||||
"thread to exit silently."
|
||||
msgstr ""
|
||||
"Lève une exception :exc:`SystemExit`. Quand elle n'est pas interceptée, le "
|
||||
"fil d'exécution se terminera silencieusement."
|
||||
|
||||
#: ../Doc/library/thread.rst:84
|
||||
msgid ""
|
||||
|
@ -143,18 +152,24 @@ msgid ""
|
|||
"Releases the lock. The lock must have been acquired earlier, but not "
|
||||
"necessarily by the same thread."
|
||||
msgstr ""
|
||||
"Relâche le verrou. Le verrou doit avoir été acquis plus tôt, mais pas "
|
||||
"nécessairement par le même fil d'exécution."
|
||||
|
||||
#: ../Doc/library/thread.rst:139
|
||||
msgid ""
|
||||
"Return the status of the lock: ``True`` if it has been acquired by some "
|
||||
"thread, ``False`` if not."
|
||||
msgstr ""
|
||||
"Renvoie le statut du verrou : ``True`` s'il a été acquis par certains fils "
|
||||
"d'exécution, sinon ``False``."
|
||||
|
||||
#: ../Doc/library/thread.rst:142
|
||||
msgid ""
|
||||
"In addition to these methods, lock objects can also be used via the :keyword:"
|
||||
"`with` statement, e.g.::"
|
||||
msgstr ""
|
||||
"En plus de ces méthodes, les objets verrous peuvent aussi être utilisés via "
|
||||
"l'instruction :keyword:`with`, e.g. : ::"
|
||||
|
||||
#: ../Doc/library/thread.rst:152
|
||||
msgid "**Caveats:**"
|
||||
|
@ -166,6 +181,10 @@ msgid ""
|
|||
"exception will be received by an arbitrary thread. (When the :mod:`signal` "
|
||||
"module is available, interrupts always go to the main thread.)"
|
||||
msgstr ""
|
||||
"Les fils d'exécution interagissent étrangement avec les interruptions : "
|
||||
"l'exception :exc:`KeyboardInterrupt` sera reçue par un fil d'exécution "
|
||||
"arbitraire. (Quand le module :mod:`signal` est disponible, les interruptions "
|
||||
"vont toujours au fil d'exécution principal)."
|
||||
|
||||
#: ../Doc/library/thread.rst:160
|
||||
msgid ""
|
||||
|
@ -179,6 +198,9 @@ msgid ""
|
|||
"the :exc:`KeyboardInterrupt` exception will happen after the lock has been "
|
||||
"acquired."
|
||||
msgstr ""
|
||||
"Il n'est pas possible d'interrompre la méthode :meth:`acquire` sur un verrou "
|
||||
"— l'exception :exc:`KeyboardInterrupt` surviendra après que le verrou a été "
|
||||
"acquis."
|
||||
|
||||
#: ../Doc/library/thread.rst:168
|
||||
msgid ""
|
||||
|
@ -194,3 +216,6 @@ msgid ""
|
|||
"that :keyword:`try` ... :keyword:`finally` clauses are honored), and the "
|
||||
"standard I/O files are not flushed."
|
||||
msgstr ""
|
||||
"Quand le fil d'exécution principal s'arrête, il ne fait pas son nettoyage "
|
||||
"habituel (excepté que les clauses :keyword:`try`… :keyword:`finally` sont "
|
||||
"honorées) et les fichiers d'entrée/sortie standards ne sont pas nettoyés."
|
||||
|
|
|
@ -18,7 +18,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/timeit.rst:2
|
||||
msgid ":mod:`timeit` --- Measure execution time of small code snippets"
|
||||
msgstr ""
|
||||
msgstr ":mod:`timeit` — Mesurer le temps d'exécution de fragments de code"
|
||||
|
||||
#: ../Doc/library/timeit.rst:14
|
||||
msgid "**Source code:** :source:`Lib/timeit.py`"
|
||||
|
@ -32,20 +32,29 @@ msgid ""
|
|||
"execution times. See also Tim Peters' introduction to the \"Algorithms\" "
|
||||
"chapter in the *Python Cookbook*, published by O'Reilly."
|
||||
msgstr ""
|
||||
"Ce module fournit une façon simple de mesurer le temps d'exécution de "
|
||||
"fragments de code Python. Il expose une :ref:`timeit-command-line-interface` "
|
||||
"ainsi qu'une :ref:`interface Python <python-interface>`. Ce module permet "
|
||||
"d'éviter un certain nombre de problèmes classiques liés à la mesure des "
|
||||
"temps d'exécution. Voir par exemple à ce sujet l'introduction par Tim Peters "
|
||||
"du chapitre « Algorithmes » dans le livre *Python Cookbook*, aux éditions "
|
||||
"O'Reilly."
|
||||
|
||||
#: ../Doc/library/timeit.rst:26
|
||||
msgid "Basic Examples"
|
||||
msgstr ""
|
||||
msgstr "Exemples simples"
|
||||
|
||||
#: ../Doc/library/timeit.rst:28
|
||||
msgid ""
|
||||
"The following example shows how the :ref:`timeit-command-line-interface` can "
|
||||
"be used to compare three different expressions:"
|
||||
msgstr ""
|
||||
"L'exemple suivant illustre l'utilisation de l':ref:`timeit-command-line-"
|
||||
"interface` afin de comparer trois expressions différentes :"
|
||||
|
||||
#: ../Doc/library/timeit.rst:40
|
||||
msgid "This can be achieved from the :ref:`python-interface` with::"
|
||||
msgstr ""
|
||||
msgstr "L':ref:`python-interface` peut être utilisée aux mêmes fins avec : ::"
|
||||
|
||||
#: ../Doc/library/timeit.rst:50
|
||||
msgid ""
|
||||
|
@ -56,11 +65,13 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/timeit.rst:58
|
||||
msgid "Python Interface"
|
||||
msgstr ""
|
||||
msgstr "Interface Python"
|
||||
|
||||
#: ../Doc/library/timeit.rst:60
|
||||
msgid "The module defines three convenience functions and a public class:"
|
||||
msgstr ""
|
||||
"Ce module définit une classe publique ainsi que trois fonctions destinées à "
|
||||
"simplifier son usage :"
|
||||
|
||||
#: ../Doc/library/timeit.rst:65
|
||||
msgid ""
|
||||
|
@ -89,6 +100,7 @@ msgstr ""
|
|||
#: ../Doc/library/timeit.rst:93
|
||||
msgid "Class for timing execution speed of small code snippets."
|
||||
msgstr ""
|
||||
"Classe permettant de mesurer le temps d'exécution de fragments de code."
|
||||
|
||||
#: ../Doc/library/timeit.rst:95
|
||||
msgid ""
|
||||
|
@ -124,6 +136,13 @@ msgid ""
|
|||
"statement, the setup statement and the timer function to be used are passed "
|
||||
"to the constructor."
|
||||
msgstr ""
|
||||
"Mesure le temps *number* exécution de l'instruction principale. Ceci exécute "
|
||||
"l'instruction de mise en place une seule fois puis renvoie un flottant "
|
||||
"correspondant au temps nécessaire à l'exécution de l'instruction principale "
|
||||
"à plusieurs reprises, mesuré en secondes. L'argument correspond au nombre "
|
||||
"d'itérations dans la boucle, par défaut un million. L'instruction "
|
||||
"principale, l'instruction de mise en place et la fonction de chronométrage "
|
||||
"utilisée sont passées au constructeur."
|
||||
|
||||
#: ../Doc/library/timeit.rst:124
|
||||
msgid ""
|
||||
|
@ -137,7 +156,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/timeit.rst:136
|
||||
msgid "Call :meth:`.timeit` a few times."
|
||||
msgstr ""
|
||||
msgstr "Appelle :meth:`.timeit` plusieurs fois."
|
||||
|
||||
#: ../Doc/library/timeit.rst:138
|
||||
msgid ""
|
||||
|
@ -146,6 +165,10 @@ msgid ""
|
|||
"call :meth:`.timeit`. The second argument specifies the *number* argument "
|
||||
"for :meth:`.timeit`."
|
||||
msgstr ""
|
||||
"Cette fonction d'agrément appelle :meth:`.timeit` à plusieurs reprises et "
|
||||
"renvoie une liste de résultats. Le premier argument spécifie le nombre "
|
||||
"d'appels à :meth:`.timeit`. Le second argument spécifie l'argument *number* "
|
||||
"de :meth:`.timeit`."
|
||||
|
||||
#: ../Doc/library/timeit.rst:145
|
||||
msgid ""
|
||||
|
@ -158,6 +181,16 @@ msgid ""
|
|||
"only number you should be interested in. After that, you should look at the "
|
||||
"entire vector and apply common sense rather than statistics."
|
||||
msgstr ""
|
||||
"Il est tentant de vouloir calculer la moyenne et l'écart-type des résultats "
|
||||
"et notifier ces valeurs. Ce n'est cependant pas très utile. En pratique, la "
|
||||
"valeur la plus basse donne une estimation basse de la vitesse maximale à "
|
||||
"laquelle votre machine peut exécuter le fragment de code spécifié ; les "
|
||||
"valeurs hautes de la liste sont typiquement provoquées non pas par une "
|
||||
"variabilité de la vitesse d'exécution de Python, mais par d'autres processus "
|
||||
"interférant avec la précision du chronométrage. Le :func:`min` du résultat "
|
||||
"est probablement la seule valeur à laquelle vous devriez vous intéresser. "
|
||||
"Pour aller plus loin, vous devriez regarder l'intégralité des résultats et "
|
||||
"utiliser le bon sens plutôt que les statistiques."
|
||||
|
||||
#: ../Doc/library/timeit.rst:158
|
||||
msgid "Helper to print a traceback from the timed code."
|
||||
|
@ -165,7 +198,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/timeit.rst:160
|
||||
msgid "Typical use::"
|
||||
msgstr ""
|
||||
msgstr "Usage typique : ::"
|
||||
|
||||
#: ../Doc/library/timeit.rst:168
|
||||
msgid ""
|
||||
|
@ -182,14 +215,16 @@ msgstr "Interface en ligne de commande"
|
|||
msgid ""
|
||||
"When called as a program from the command line, the following form is used::"
|
||||
msgstr ""
|
||||
"Lorsque le module est appelé comme un programme en ligne de commande, la "
|
||||
"syntaxe suivante est utilisée : ::"
|
||||
|
||||
#: ../Doc/library/timeit.rst:182
|
||||
msgid "Where the following options are understood:"
|
||||
msgstr ""
|
||||
msgstr "Les options suivantes sont gérées :"
|
||||
|
||||
#: ../Doc/library/timeit.rst:188
|
||||
msgid "how many times to execute 'statement'"
|
||||
msgstr ""
|
||||
msgstr "nombre d'exécutions de l'instruction *statement*"
|
||||
|
||||
#: ../Doc/library/timeit.rst:192
|
||||
msgid "how many times to repeat the timer (default 3)"
|
||||
|
@ -198,6 +233,7 @@ msgstr ""
|
|||
#: ../Doc/library/timeit.rst:196
|
||||
msgid "statement to be executed once initially (default ``pass``)"
|
||||
msgstr ""
|
||||
"instruction exécutée une seule fois à l'initialisation (``pass`` par défaut)"
|
||||
|
||||
#: ../Doc/library/timeit.rst:200
|
||||
msgid "use :func:`time.time` (default on all platforms but Windows)"
|
||||
|
@ -213,7 +249,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/timeit.rst:212
|
||||
msgid "print a short usage message and exit"
|
||||
msgstr ""
|
||||
msgstr "affiche un court message d'aide puis quitte"
|
||||
|
||||
#: ../Doc/library/timeit.rst:214
|
||||
msgid ""
|
||||
|
@ -222,12 +258,19 @@ msgid ""
|
|||
"quotes and using leading spaces. Multiple :option:`-s` options are treated "
|
||||
"similarly."
|
||||
msgstr ""
|
||||
"Une instruction sur plusieurs lignes peut être donnée en entrée en "
|
||||
"spécifiant chaque ligne comme un argument séparé. Indenter une ligne est "
|
||||
"possible en encadrant l'argument de guillemets et en le préfixant par des "
|
||||
"espaces. Plusieurs :option:`-s` sont gérées de la même façon."
|
||||
|
||||
#: ../Doc/library/timeit.rst:219
|
||||
msgid ""
|
||||
"If :option:`-n` is not given, a suitable number of loops is calculated by "
|
||||
"trying successive powers of 10 until the total time is at least 0.2 seconds."
|
||||
msgstr ""
|
||||
"Si :option:`-n` n'est pas donnée, le nombre de boucles adapté est déterminé "
|
||||
"automatiquement en essayant les puissances de 10 successives jusqu'à ce que "
|
||||
"le temps total d'exécution dépasse 0,2 secondes."
|
||||
|
||||
#: ../Doc/library/timeit.rst:222
|
||||
msgid ""
|
||||
|
@ -259,10 +302,14 @@ msgid ""
|
|||
"It is possible to provide a setup statement that is executed only once at "
|
||||
"the beginning:"
|
||||
msgstr ""
|
||||
"Il est possible de fournir une instruction de mise en place exécutée une "
|
||||
"seule fois au début du chronométrage :"
|
||||
|
||||
#: ../Doc/library/timeit.rst:261
|
||||
msgid "The same can be done using the :class:`Timer` class and its methods::"
|
||||
msgstr ""
|
||||
"La même chose peut être réalisée en utilisant la classe :class:`Timer` et "
|
||||
"ses méthodes : ::"
|
||||
|
||||
#: ../Doc/library/timeit.rst:271
|
||||
msgid ""
|
||||
|
@ -270,9 +317,16 @@ msgid ""
|
|||
"lines. Here we compare the cost of using :func:`hasattr` vs. :keyword:`try`/:"
|
||||
"keyword:`except` to test for missing and present object attributes:"
|
||||
msgstr ""
|
||||
"Les exemples qui suivent montrent comment chronométrer des expressions sur "
|
||||
"plusieurs lignes. Nous comparons ici le coût d'utilisation de :func:"
|
||||
"`hasattr` par rapport à :keyword:`try`/:keyword:`except` pour tester la "
|
||||
"présence ou l'absence d'attributs d'un objet :"
|
||||
|
||||
#: ../Doc/library/timeit.rst:316
|
||||
msgid ""
|
||||
"To give the :mod:`timeit` module access to functions you define, you can "
|
||||
"pass a *setup* parameter which contains an import statement::"
|
||||
msgstr ""
|
||||
"Afin de permettre à :mod:`timeit` d'accéder aux fonctions que vous avez "
|
||||
"définies, vous pouvez passer au paramètre *setup* une instruction "
|
||||
"d'importation: ::"
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -166,7 +166,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/ttk.rst:116
|
||||
msgid "cursor"
|
||||
msgstr ""
|
||||
msgstr "*cursor*"
|
||||
|
||||
#: ../Doc/library/ttk.rst:116
|
||||
msgid ""
|
||||
|
@ -544,7 +544,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/ttk.rst:313
|
||||
msgid "justify"
|
||||
msgstr ""
|
||||
msgstr "*justify*"
|
||||
|
||||
#: ../Doc/library/ttk.rst:313
|
||||
msgid ""
|
||||
|
@ -1257,7 +1257,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/ttk.rst:792
|
||||
msgid "font"
|
||||
msgstr ""
|
||||
msgstr "*font*"
|
||||
|
||||
#: ../Doc/library/ttk.rst:792
|
||||
msgid "Specifies the font to use when drawing text."
|
||||
|
@ -1561,7 +1561,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/ttk.rst:978
|
||||
msgid "region"
|
||||
msgstr ""
|
||||
msgstr "*region*"
|
||||
|
||||
#: ../Doc/library/ttk.rst:978
|
||||
msgid "meaning"
|
||||
|
|
|
@ -18,7 +18,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/wave.rst:2
|
||||
msgid ":mod:`wave` --- Read and write WAV files"
|
||||
msgstr ""
|
||||
msgstr ":mod:`wave` --- Lecture et écriture des fichiers WAV"
|
||||
|
||||
#: ../Doc/library/wave.rst:9
|
||||
msgid "**Source code:** :source:`Lib/wave.py`"
|
||||
|
@ -30,10 +30,13 @@ msgid ""
|
|||
"format. It does not support compression/decompression, but it does support "
|
||||
"mono/stereo."
|
||||
msgstr ""
|
||||
"Le module :mod:`wave` fournit une interface pratique pour le format de son "
|
||||
"WAV. Il ne gère pas la compression ni la décompression, mais gère le mono et "
|
||||
"le stéréo."
|
||||
|
||||
#: ../Doc/library/wave.rst:16
|
||||
msgid "The :mod:`wave` module defines the following function and exception:"
|
||||
msgstr ""
|
||||
msgstr "Le module :mod:`wave` définit la fonction et l'exception suivante :"
|
||||
|
||||
#: ../Doc/library/wave.rst:21
|
||||
msgid ""
|
||||
|
@ -47,7 +50,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/wave.rst:25
|
||||
msgid "Read only mode."
|
||||
msgstr ""
|
||||
msgstr "Mode lecture seule."
|
||||
|
||||
#: ../Doc/library/wave.rst:28
|
||||
msgid "``'w'``, ``'wb'``"
|
||||
|
@ -55,11 +58,13 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/wave.rst:28
|
||||
msgid "Write only mode."
|
||||
msgstr ""
|
||||
msgstr "Mode écriture seule."
|
||||
|
||||
#: ../Doc/library/wave.rst:30
|
||||
msgid "Note that it does not allow read/write WAV files."
|
||||
msgstr ""
|
||||
"Notez que ce module ne permet pas de manipuler des fichiers WAV en lecture/"
|
||||
"écriture."
|
||||
|
||||
#: ../Doc/library/wave.rst:32
|
||||
msgid ""
|
||||
|
@ -76,57 +81,69 @@ msgid ""
|
|||
"its :meth:`close` method is called; it is the caller's responsibility to "
|
||||
"close the file object."
|
||||
msgstr ""
|
||||
"Si vous donnez un objet de type fichier, l'objet *wave* ne le ferme pas "
|
||||
"lorsque sa méthode :meth:`close` est appelée car c'est l'appelant qui est "
|
||||
"responsable de la fermeture."
|
||||
|
||||
#: ../Doc/library/wave.rst:45
|
||||
msgid "A synonym for :func:`.open`, maintained for backwards compatibility."
|
||||
msgstr ""
|
||||
msgstr "Un synonyme de :func:`.open`, maintenu pour la rétrocompatibilité."
|
||||
|
||||
#: ../Doc/library/wave.rst:50
|
||||
msgid ""
|
||||
"An error raised when something is impossible because it violates the WAV "
|
||||
"specification or hits an implementation deficiency."
|
||||
msgstr ""
|
||||
"Une erreur est levée lorsque quelque chose est impossible car elle enfreint "
|
||||
"la spécification WAV ou rencontre un problème d'implémentation."
|
||||
|
||||
#: ../Doc/library/wave.rst:57
|
||||
msgid "Wave_read Objects"
|
||||
msgstr ""
|
||||
msgstr "Objets Wave_read"
|
||||
|
||||
#: ../Doc/library/wave.rst:59
|
||||
msgid ""
|
||||
"Wave_read objects, as returned by :func:`.open`, have the following methods:"
|
||||
msgstr ""
|
||||
"Les objets Wave_read, tels qu'ils sont renvoyés par :func:`.open`, ont les "
|
||||
"méthodes suivantes :"
|
||||
|
||||
#: ../Doc/library/wave.rst:64
|
||||
msgid ""
|
||||
"Close the stream if it was opened by :mod:`wave`, and make the instance "
|
||||
"unusable. This is called automatically on object collection."
|
||||
msgstr ""
|
||||
"Ferme le flux s'il a été ouvert par :mod:`wave` et rend l'instance "
|
||||
"inutilisable. Ceci est appelé automatiquement lorsque l'objet est détruit ."
|
||||
|
||||
#: ../Doc/library/wave.rst:70
|
||||
msgid "Returns number of audio channels (``1`` for mono, ``2`` for stereo)."
|
||||
msgstr ""
|
||||
"Renvoie le nombre de canaux audio (``1`` pour mono, ``2`` pour stéréo)."
|
||||
|
||||
#: ../Doc/library/wave.rst:75
|
||||
msgid "Returns sample width in bytes."
|
||||
msgstr ""
|
||||
msgstr "Renvoie la largeur de l'échantillon en octets."
|
||||
|
||||
#: ../Doc/library/wave.rst:80
|
||||
msgid "Returns sampling frequency."
|
||||
msgstr ""
|
||||
msgstr "Renvoie la fréquence d'échantillonnage."
|
||||
|
||||
#: ../Doc/library/wave.rst:85
|
||||
msgid "Returns number of audio frames."
|
||||
msgstr ""
|
||||
msgstr "Renvoie le nombre de trames audio."
|
||||
|
||||
#: ../Doc/library/wave.rst:90
|
||||
msgid "Returns compression type (``'NONE'`` is the only supported type)."
|
||||
msgstr ""
|
||||
msgstr "Renvoie le type de compression (``'NONE'`` est le seul type géré)."
|
||||
|
||||
#: ../Doc/library/wave.rst:95
|
||||
msgid ""
|
||||
"Human-readable version of :meth:`getcomptype`. Usually ``'not compressed'`` "
|
||||
"parallels ``'NONE'``."
|
||||
msgstr ""
|
||||
"Version compréhensible de :meth:`getcomptype`. Généralement, ``'not "
|
||||
"compressed'`` équivaut à ``'NONE'``."
|
||||
|
||||
#: ../Doc/library/wave.rst:101
|
||||
msgid ""
|
||||
|
@ -140,44 +157,52 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/wave.rst:112
|
||||
msgid "Rewind the file pointer to the beginning of the audio stream."
|
||||
msgstr ""
|
||||
msgstr "Remet le pointeur de fichier au début du flux audio."
|
||||
|
||||
#: ../Doc/library/wave.rst:114
|
||||
msgid ""
|
||||
"The following two methods are defined for compatibility with the :mod:`aifc` "
|
||||
"module, and don't do anything interesting."
|
||||
msgstr ""
|
||||
"Les deux méthodes suivantes sont définies pour la compatibilité avec le "
|
||||
"module :mod:`aifc` ; elles ne font rien d’intéressant."
|
||||
|
||||
#: ../Doc/library/wave.rst:120
|
||||
msgid "Returns ``None``."
|
||||
msgstr ""
|
||||
msgstr "Renvoie ``None``."
|
||||
|
||||
#: ../Doc/library/wave.rst:125
|
||||
msgid "Raise an error."
|
||||
msgstr ""
|
||||
msgstr "Lève une erreur."
|
||||
|
||||
#: ../Doc/library/wave.rst:127
|
||||
msgid ""
|
||||
"The following two methods define a term \"position\" which is compatible "
|
||||
"between them, and is otherwise implementation dependent."
|
||||
msgstr ""
|
||||
"Les deux fonctions suivantes utilisent le vocabulaire \"position\". Ces "
|
||||
"positions sont compatible entre elles, la \"position\" de l'un est "
|
||||
"compatible avec la \"position\" de l'autre. Cette position est dépendante de "
|
||||
"l'implémentation."
|
||||
|
||||
#: ../Doc/library/wave.rst:133
|
||||
msgid "Set the file pointer to the specified position."
|
||||
msgstr ""
|
||||
msgstr "Place le pointeur du fichier sur la position spécifiée."
|
||||
|
||||
#: ../Doc/library/wave.rst:138
|
||||
msgid "Return current file pointer position."
|
||||
msgstr ""
|
||||
msgstr "Renvoie la position actuelle du pointeur du fichier."
|
||||
|
||||
#: ../Doc/library/wave.rst:144
|
||||
msgid "Wave_write Objects"
|
||||
msgstr ""
|
||||
msgstr "Objets Wave_write"
|
||||
|
||||
#: ../Doc/library/wave.rst:146
|
||||
msgid ""
|
||||
"Wave_write objects, as returned by :func:`.open`, have the following methods:"
|
||||
msgstr ""
|
||||
"Les objets Wave_write, tels qu'ils sont renvoyés par :func:`.open`, ont les "
|
||||
"méthodes suivantes :"
|
||||
|
||||
#: ../Doc/library/wave.rst:151
|
||||
msgid ""
|
||||
|
@ -187,15 +212,15 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/wave.rst:157
|
||||
msgid "Set the number of channels."
|
||||
msgstr ""
|
||||
msgstr "Définit le nombre de canaux."
|
||||
|
||||
#: ../Doc/library/wave.rst:162
|
||||
msgid "Set the sample width to *n* bytes."
|
||||
msgstr ""
|
||||
msgstr "Définit la largeur de l'échantillon à *n* octets."
|
||||
|
||||
#: ../Doc/library/wave.rst:167
|
||||
msgid "Set the frame rate to *n*."
|
||||
msgstr ""
|
||||
msgstr "Définit la fréquence des trames à *n*."
|
||||
|
||||
#: ../Doc/library/wave.rst:172
|
||||
msgid ""
|
||||
|
@ -208,6 +233,8 @@ msgid ""
|
|||
"Set the compression type and description. At the moment, only compression "
|
||||
"type ``NONE`` is supported, meaning no compression."
|
||||
msgstr ""
|
||||
"Définit le type de compression et la description. Pour le moment, seul le "
|
||||
"type de compression ``NONE`` est géré, c'est-à-dire aucune compression."
|
||||
|
||||
#: ../Doc/library/wave.rst:184
|
||||
msgid ""
|
||||
|
@ -215,16 +242,21 @@ msgid ""
|
|||
"compname)``, with values valid for the :meth:`set\\*` methods. Sets all "
|
||||
"parameters."
|
||||
msgstr ""
|
||||
"Le *tuple* doit être ``(nchannels, sampwidth, framerate, nframes, comptype, "
|
||||
"compname)``, avec des valeurs valides pour les méthodes :meth:`set\\*`. Tous "
|
||||
"les paramètres sont obligatoires et doivent être définis."
|
||||
|
||||
#: ../Doc/library/wave.rst:191
|
||||
msgid ""
|
||||
"Return current position in the file, with the same disclaimer for the :meth:"
|
||||
"`Wave_read.tell` and :meth:`Wave_read.setpos` methods."
|
||||
msgstr ""
|
||||
"Renvoie la position actuelle dans le fichier, avec les mêmes réserves que "
|
||||
"pour les méthodes :meth:`Wave_read.tell` et :meth:`Wave_read.setpos`."
|
||||
|
||||
#: ../Doc/library/wave.rst:197
|
||||
msgid "Write audio frames, without correcting *nframes*."
|
||||
msgstr ""
|
||||
msgstr "Écrit les trames audio sans corriger *nframes*."
|
||||
|
||||
#: ../Doc/library/wave.rst:202
|
||||
msgid "Write audio frames and make sure *nframes* is correct."
|
||||
|
@ -236,3 +268,6 @@ msgid ""
|
|||
"`writeframes` or :meth:`writeframesraw`, and any attempt to do so will "
|
||||
"raise :exc:`wave.Error`."
|
||||
msgstr ""
|
||||
"Notez qu'il est impossible de définir des paramètres après avoir appelé :"
|
||||
"meth:`writeframes` ou :meth:`writeframesraw`, et toute tentative en ce sens "
|
||||
"lève une :exc:`wave.Error`."
|
||||
|
|
|
@ -18,7 +18,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/zipimport.rst:3
|
||||
msgid ":mod:`zipimport` --- Import modules from Zip archives"
|
||||
msgstr ""
|
||||
msgstr ":mod:`zipimport` — Importer des modules à partir d'archives Zip"
|
||||
|
||||
#: ../Doc/library/zipimport.rst:12
|
||||
msgid ""
|
||||
|
@ -39,6 +39,14 @@ msgid ""
|
|||
"lib/` would only import from the :file:`lib/` subdirectory within the "
|
||||
"archive."
|
||||
msgstr ""
|
||||
"Typiquement, :data:`sys.path` est une liste de noms de répertoires sous "
|
||||
"forme de chaînes. Ce module permet également à un élément de :data:`sys."
|
||||
"path` d'être une chaîne nommant une archive de fichier ZIP. L'archive ZIP "
|
||||
"peut contenir une structure de sous-répertoire pour prendre en charge les "
|
||||
"importations de paquets, et un chemin dans l'archive peut être spécifié pour "
|
||||
"importer uniquement à partir d'un sous-répertoire. Par exemple, le chemin "
|
||||
"d'accès :file:`example.zip/lib/` importerait uniquement depuis le sous-"
|
||||
"répertoire :file:`lib/` dans l'archive."
|
||||
|
||||
#: ../Doc/library/zipimport.rst:25
|
||||
msgid ""
|
||||
|
@ -67,6 +75,8 @@ msgid ""
|
|||
"`PKZIP Application Note <https://pkware.cachefly.net/webdocs/casestudies/"
|
||||
"APPNOTE.TXT>`_"
|
||||
msgstr ""
|
||||
"`PKZIP Application Note <https://pkware.cachefly.net/webdocs/casestudies/"
|
||||
"APPNOTE.TXT>`_"
|
||||
|
||||
#: ../Doc/library/zipimport.rst:41
|
||||
msgid ""
|
||||
|
@ -78,7 +88,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/zipimport.rst:47
|
||||
msgid ":pep:`273` - Import Modules from Zip Archives"
|
||||
msgstr ""
|
||||
msgstr ":pep:`273` - Import Modules from Zip Archives"
|
||||
|
||||
#: ../Doc/library/zipimport.rst:45
|
||||
msgid ""
|
||||
|
@ -89,29 +99,33 @@ msgstr ""
|
|||
|
||||
#: ../Doc/library/zipimport.rst:49
|
||||
msgid ":pep:`302` - New Import Hooks"
|
||||
msgstr ""
|
||||
msgstr ":pep:`302` — Nouveaux crochets d'importation"
|
||||
|
||||
#: ../Doc/library/zipimport.rst:50
|
||||
msgid "The PEP to add the import hooks that help this module work."
|
||||
msgstr ""
|
||||
"Le PEP pour ajouter les crochets d'importation qui aident ce module à "
|
||||
"fonctionner."
|
||||
|
||||
#: ../Doc/library/zipimport.rst:53
|
||||
msgid "This module defines an exception:"
|
||||
msgstr ""
|
||||
msgstr "Ce module définit une exception :"
|
||||
|
||||
#: ../Doc/library/zipimport.rst:57
|
||||
msgid ""
|
||||
"Exception raised by zipimporter objects. It's a subclass of :exc:"
|
||||
"`ImportError`, so it can be caught as :exc:`ImportError`, too."
|
||||
msgstr ""
|
||||
"Exception levée par les objets *zipimporter*. C'est une sous-classe de :exc:"
|
||||
"`ImportError`, donc il peut être pris comme :exc:`ImportError`, aussi."
|
||||
|
||||
#: ../Doc/library/zipimport.rst:64
|
||||
msgid "zipimporter Objects"
|
||||
msgstr ""
|
||||
msgstr "Objets *zimporter*"
|
||||
|
||||
#: ../Doc/library/zipimport.rst:66
|
||||
msgid ":class:`zipimporter` is the class for importing ZIP files."
|
||||
msgstr ""
|
||||
msgstr ":class:`zipimporter` est la classe pour importer des fichiers ZIP."
|
||||
|
||||
#: ../Doc/library/zipimport.rst:70
|
||||
msgid ""
|
||||
|
@ -121,12 +135,19 @@ msgid ""
|
|||
"`lib` directory inside the ZIP file :file:`foo/bar.zip` (provided that it "
|
||||
"exists)."
|
||||
msgstr ""
|
||||
"Créez une nouvelle instance de `zipimporter`. *archivepath* doit être un "
|
||||
"chemin vers un fichier ZIP, ou vers un chemin spécifique dans un fichier "
|
||||
"ZIP. Par exemple, un *archivepath* de :file:`foo/bar.zip/lib` cherchera les "
|
||||
"modules dans le répertoire :file:`lib` du fichier ZIP :file:`foo/bar.zip` "
|
||||
"(si celui-ci existe)."
|
||||
|
||||
#: ../Doc/library/zipimport.rst:75
|
||||
msgid ""
|
||||
":exc:`ZipImportError` is raised if *archivepath* doesn't point to a valid "
|
||||
"ZIP archive."
|
||||
msgstr ""
|
||||
":exc:`ZipImportError` est levée si *archivepath* ne pointe pas vers une "
|
||||
"archive ZIP valide."
|
||||
|
||||
#: ../Doc/library/zipimport.rst:80
|
||||
msgid ""
|
||||
|
@ -136,12 +157,19 @@ msgid ""
|
|||
"argument is ignored---it's there for compatibility with the importer "
|
||||
"protocol."
|
||||
msgstr ""
|
||||
"Rechercher un module spécifié par *fullname*. *fullname* doit être le nom du "
|
||||
"module entièrement qualifié (`dotted`). Elle retourne l'instance "
|
||||
"`zipimporter` elle-même si le module a été trouvé, ou :const:`None` si ce "
|
||||
"n'est pas le cas. L'argument optionnel *path* est ignoré --- il est là pour "
|
||||
"la compatibilité avec le protocole de l'importateur."
|
||||
|
||||
#: ../Doc/library/zipimport.rst:89
|
||||
msgid ""
|
||||
"Return the code object for the specified module. Raise :exc:`ZipImportError` "
|
||||
"if the module couldn't be found."
|
||||
msgstr ""
|
||||
"Retourne l'objet de code pour le module spécifié. Lève :exc:`ZipImportError` "
|
||||
"si le module n'a pas pu être trouvé."
|
||||
|
||||
#: ../Doc/library/zipimport.rst:95
|
||||
msgid ""
|
||||
|
@ -154,6 +182,9 @@ msgid ""
|
|||
"Return the value ``__file__`` would be set to if the specified module was "
|
||||
"imported. Raise :exc:`ZipImportError` if the module couldn't be found."
|
||||
msgstr ""
|
||||
"Renvoie la valeur ``__file____`` qui serait définie si le module spécifié "
|
||||
"était importé. Lève :exc:`ZipImportError` si le module n'a pas pu être "
|
||||
"trouvé."
|
||||
|
||||
#: ../Doc/library/zipimport.rst:110
|
||||
msgid ""
|
||||
|
@ -161,12 +192,17 @@ msgid ""
|
|||
"if the module couldn't be found, return :const:`None` if the archive does "
|
||||
"contain the module, but has no source for it."
|
||||
msgstr ""
|
||||
"Renvoie le code source du module spécifié. Lève :exc:`ZipImportError` si le "
|
||||
"module n'a pas pu être trouvé, renvoie :const:`None` si l'archive contient "
|
||||
"le module, mais n'en a pas la source."
|
||||
|
||||
#: ../Doc/library/zipimport.rst:118
|
||||
msgid ""
|
||||
"Return ``True`` if the module specified by *fullname* is a package. Raise :"
|
||||
"exc:`ZipImportError` if the module couldn't be found."
|
||||
msgstr ""
|
||||
"Renvoie ``True`` si le module spécifié par *fullname* est un paquet. Lève :"
|
||||
"exc:`ZipImportError` si le module n'a pas pu être trouvé."
|
||||
|
||||
#: ../Doc/library/zipimport.rst:124
|
||||
msgid ""
|
||||
|
@ -174,18 +210,26 @@ msgid ""
|
|||
"qualified (dotted) module name. It returns the imported module, or raises :"
|
||||
"exc:`ZipImportError` if it wasn't found."
|
||||
msgstr ""
|
||||
"Charge le module spécifié par *fullname*. *fullname* doit être le nom du "
|
||||
"module entièrement qualifié (`dotted`). Il renvoie le module importé, ou "
|
||||
"augmente :exc:`ZipImportError` s'il n'a pas été trouvé."
|
||||
|
||||
#: ../Doc/library/zipimport.rst:131
|
||||
msgid ""
|
||||
"The file name of the importer's associated ZIP file, without a possible "
|
||||
"subpath."
|
||||
msgstr ""
|
||||
"Le nom de fichier de l'archive ZIP associé à l'importateur, sans sous-chemin "
|
||||
"possible."
|
||||
|
||||
#: ../Doc/library/zipimport.rst:137
|
||||
msgid ""
|
||||
"The subpath within the ZIP file where modules are searched. This is the "
|
||||
"empty string for zipimporter objects which point to the root of the ZIP file."
|
||||
msgstr ""
|
||||
"Le sous-chemin du fichier ZIP où les modules sont recherchés. C'est la "
|
||||
"chaîne vide pour les objets `zipimporter` qui pointent vers la racine du "
|
||||
"fichier ZIP."
|
||||
|
||||
#: ../Doc/library/zipimport.rst:141
|
||||
msgid ""
|
||||
|
@ -193,6 +237,9 @@ msgid ""
|
|||
"slash, equal the original *archivepath* argument given to the :class:"
|
||||
"`zipimporter` constructor."
|
||||
msgstr ""
|
||||
"Les attributs :attr:`archive` et :attr:`prefix`, lorsqu'ils sont combinés "
|
||||
"avec une barre oblique, égalent l'argument original *archivepath* donné au "
|
||||
"constructeur :class:`zipimporter`."
|
||||
|
||||
#: ../Doc/library/zipimport.rst:149
|
||||
msgid "Examples"
|
||||
|
@ -203,3 +250,5 @@ msgid ""
|
|||
"Here is an example that imports a module from a ZIP archive - note that the :"
|
||||
"mod:`zipimport` module is not explicitly used."
|
||||
msgstr ""
|
||||
"Voici un exemple qui importe un module d'une archive ZIP — notez que le "
|
||||
"module :mod:`zipimport` n'est pas explicitement utilisé."
|
||||
|
|
|
@ -324,7 +324,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/whatsnew/2.3.rst:331
|
||||
msgid ":pep:`273` - Import Modules from Zip Archives"
|
||||
msgstr ""
|
||||
msgstr ":pep:`273` - Import Modules from Zip Archives"
|
||||
|
||||
#: ../Doc/whatsnew/2.3.rst:329
|
||||
msgid ""
|
||||
|
@ -784,7 +784,7 @@ msgstr ""
|
|||
|
||||
#: ../Doc/whatsnew/2.3.rst:760
|
||||
msgid ":pep:`302` - New Import Hooks"
|
||||
msgstr ""
|
||||
msgstr ":pep:`302` — Nouveaux crochets d'importation"
|
||||
|
||||
#: ../Doc/whatsnew/2.3.rst:761
|
||||
msgid ""
|
||||
|
|
|
@ -592,6 +592,9 @@ msgid ""
|
|||
"The cumulative effect of these changes is to turn generators from one-way "
|
||||
"producers of information into both producers and consumers."
|
||||
msgstr ""
|
||||
"Ces changements cumulés transforment les générateurs de producteurs "
|
||||
"unidirectionnels d'information vers un statut hybride à la fois producteur "
|
||||
"et consommateur."
|
||||
|
||||
#: ../Doc/whatsnew/2.5.rst:517
|
||||
msgid ""
|
||||
|
|
Loading…
Reference in New Issue
Block a user