# Copyright (C) 2001-2018, Python Software Foundation
# For licence information, see README file.
#
msgid ""
msgstr ""
"Project-Id-Version: Python 3\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-07-23 14:38+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: FRENCH <traductions@lists.afpy.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

#: library/imp.rst:2
msgid ":mod:`imp` --- Access the :ref:`import <importsystem>` internals"
msgstr ""

#: library/imp.rst:8
#, fuzzy
msgid "**Source code:** :source:`Lib/imp.py`"
msgstr "**Code source :** :source:`Lib/gzip.py`"

#: library/imp.rst:12
msgid "The :mod:`imp` module is deprecated in favor of :mod:`importlib`."
msgstr ""

#: library/imp.rst:17
msgid ""
"This module provides an interface to the mechanisms used to implement the :"
"keyword:`import` statement.  It defines the following constants and "
"functions:"
msgstr ""

#: library/imp.rst:25
msgid ""
"Return the magic string value used to recognize byte-compiled code files (:"
"file:`.pyc` files).  (This value may be different for each Python version.)"
msgstr ""

#: library/imp.rst:28
msgid "Use :attr:`importlib.util.MAGIC_NUMBER` instead."
msgstr ""

#: library/imp.rst:34
msgid ""
"Return a list of 3-element tuples, each describing a particular type of "
"module. Each triple has the form ``(suffix, mode, type)``, where *suffix* is "
"a string to be appended to the module name to form the filename to search "
"for, *mode* is the mode string to pass to the built-in :func:`open` function "
"to open the file (this can be ``'r'`` for text files or ``'rb'`` for binary "
"files), and *type* is the file type, which has one of the values :const:"
"`PY_SOURCE`, :const:`PY_COMPILED`, or :const:`C_EXTENSION`, described below."
msgstr ""

#: library/imp.rst:43
msgid "Use the constants defined on :mod:`importlib.machinery` instead."
msgstr ""

#: library/imp.rst:49
msgid ""
"Try to find the module *name*.  If *path* is omitted or ``None``, the list "
"of directory names given by ``sys.path`` is searched, but first a few "
"special places are searched: the function tries to find a built-in module "
"with the given name (:const:`C_BUILTIN`), then a frozen module (:const:"
"`PY_FROZEN`), and on some systems some other places are looked in as well "
"(on Windows, it looks in the registry which may point to a specific file)."
msgstr ""

#: library/imp.rst:56
msgid ""
"Otherwise, *path* must be a list of directory names; each directory is "
"searched for files with any of the suffixes returned by :func:`get_suffixes` "
"above.  Invalid names in the list are silently ignored (but all list items "
"must be strings)."
msgstr ""

#: library/imp.rst:61
msgid ""
"If search is successful, the return value is a 3-element tuple ``(file, "
"pathname, description)``:"
msgstr ""

#: library/imp.rst:64
msgid ""
"*file* is an open :term:`file object` positioned at the beginning, "
"*pathname* is the pathname of the file found, and *description* is a 3-"
"element tuple as contained in the list returned by :func:`get_suffixes` "
"describing the kind of module found."
msgstr ""

#: library/imp.rst:69
msgid ""
"If the module is built-in or frozen then *file* and *pathname* are both "
"``None`` and the *description* tuple contains empty strings for its suffix "
"and mode; the module type is indicated as given in parentheses above.  If "
"the search is unsuccessful, :exc:`ImportError` is raised.  Other exceptions "
"indicate problems with the arguments or environment."
msgstr ""

#: library/imp.rst:75
msgid ""
"If the module is a package, *file* is ``None``, *pathname* is the package "
"path and the last item in the *description* tuple is :const:`PKG_DIRECTORY`."
msgstr ""

#: library/imp.rst:78
msgid ""
"This function does not handle hierarchical module names (names containing "
"dots).  In order to find *P.M*, that is, submodule *M* of package *P*, use :"
"func:`find_module` and :func:`load_module` to find and load package *P*, and "
"then use :func:`find_module` with the *path* argument set to ``P.__path__``. "
"When *P* itself has a dotted name, apply this recipe recursively."
msgstr ""

#: library/imp.rst:84
msgid ""
"Use :func:`importlib.util.find_spec` instead unless Python 3.3 compatibility "
"is required, in which case use :func:`importlib.find_loader`. For example "
"usage of the former case, see the :ref:`importlib-examples` section of the :"
"mod:`importlib` documentation."
msgstr ""

#: library/imp.rst:94
msgid ""
"Load a module that was previously found by :func:`find_module` (or by an "
"otherwise conducted search yielding compatible results).  This function does "
"more than importing the module: if the module was already imported, it will "
"reload the module!  The *name* argument indicates the full module name "
"(including the package name, if this is a submodule of a package).  The "
"*file* argument is an open file, and *pathname* is the corresponding file "
"name; these can be ``None`` and ``''``, respectively, when the module is a "
"package or not being loaded from a file.  The *description* argument is a "
"tuple, as would be returned by :func:`get_suffixes`, describing what kind of "
"module must be loaded."
msgstr ""

#: library/imp.rst:105
msgid ""
"If the load is successful, the return value is the module object; otherwise, "
"an exception (usually :exc:`ImportError`) is raised."
msgstr ""

#: library/imp.rst:108
msgid ""
"**Important:** the caller is responsible for closing the *file* argument, if "
"it was not ``None``, even when an exception is raised.  This is best done "
"using a :keyword:`try` ... :keyword:`finally` statement."
msgstr ""

#: library/imp.rst:112
msgid ""
"If previously used in conjunction with :func:`imp.find_module` then consider "
"using :func:`importlib.import_module`, otherwise use the loader returned by "
"the replacement you chose for :func:`imp.find_module`. If you called :func:"
"`imp.load_module` and related functions directly with file path arguments "
"then use a combination of :func:`importlib.util.spec_from_file_location` "
"and :func:`importlib.util.module_from_spec`. See the :ref:`importlib-"
"examples` section of the :mod:`importlib` documentation for details of the "
"various approaches."
msgstr ""

#: library/imp.rst:126
msgid ""
"Return a new empty module object called *name*.  This object is *not* "
"inserted in ``sys.modules``."
msgstr ""

#: library/imp.rst:129
msgid "Use :func:`importlib.util.module_from_spec` instead."
msgstr ""

#: library/imp.rst:135
msgid ""
"Reload a previously imported *module*.  The argument must be a module "
"object, so it must have been successfully imported before.  This is useful "
"if you have edited the module source file using an external editor and want "
"to try out the new version without leaving the Python interpreter.  The "
"return value is the module object (the same as the *module* argument)."
msgstr ""

#: library/imp.rst:141
msgid "When ``reload(module)`` is executed:"
msgstr ""

#: library/imp.rst:143
msgid ""
"Python modules' code is recompiled and the module-level code reexecuted, "
"defining a new set of objects which are bound to names in the module's "
"dictionary.  The ``init`` function of extension modules is not called a "
"second time."
msgstr ""

#: library/imp.rst:148
msgid ""
"As with all other objects in Python the old objects are only reclaimed after "
"their reference counts drop to zero."
msgstr ""

#: library/imp.rst:151
msgid ""
"The names in the module namespace are updated to point to any new or changed "
"objects."
msgstr ""

#: library/imp.rst:154
msgid ""
"Other references to the old objects (such as names external to the module) "
"are not rebound to refer to the new objects and must be updated in each "
"namespace where they occur if that is desired."
msgstr ""

#: library/imp.rst:158
msgid "There are a number of other caveats:"
msgstr ""

#: library/imp.rst:160
msgid ""
"When a module is reloaded, its dictionary (containing the module's global "
"variables) is retained.  Redefinitions of names will override the old "
"definitions, so this is generally not a problem.  If the new version of a "
"module does not define a name that was defined by the old version, the old "
"definition remains.  This feature can be used to the module's advantage if "
"it maintains a global table or cache of objects --- with a :keyword:`try` "
"statement it can test for the table's presence and skip its initialization "
"if desired::"
msgstr ""

#: library/imp.rst:173
msgid ""
"It is legal though generally not very useful to reload built-in or "
"dynamically loaded modules, except for :mod:`sys`, :mod:`__main__` and :mod:"
"`builtins`. In many cases, however, extension modules are not designed to be "
"initialized more than once, and may fail in arbitrary ways when reloaded."
msgstr ""

#: library/imp.rst:178
msgid ""
"If a module imports objects from another module using :keyword:`from` ... :"
"keyword:`import` ..., calling :func:`reload` for the other module does not "
"redefine the objects imported from it --- one way around this is to re-"
"execute the :keyword:`!from` statement, another is to use :keyword:`!import` "
"and qualified names (*module*.*name*) instead."
msgstr ""

#: library/imp.rst:184
msgid ""
"If a module instantiates instances of a class, reloading the module that "
"defines the class does not affect the method definitions of the instances "
"--- they continue to use the old class definition.  The same is true for "
"derived classes."
msgstr ""

#: library/imp.rst:188
msgid ""
"Relies on both ``__name__`` and ``__loader__`` being defined on the module "
"being reloaded instead of just ``__name__``."
msgstr ""

#: library/imp.rst:192
msgid "Use :func:`importlib.reload` instead."
msgstr ""

#: library/imp.rst:196
msgid ""
"The following functions are conveniences for handling :pep:`3147` byte-"
"compiled file paths."
msgstr ""

#: library/imp.rst:203
msgid ""
"Return the :pep:`3147` path to the byte-compiled file associated with the "
"source *path*.  For example, if *path* is ``/foo/bar/baz.py`` the return "
"value would be ``/foo/bar/__pycache__/baz.cpython-32.pyc`` for Python 3.2. "
"The ``cpython-32`` string comes from the current magic tag (see :func:"
"`get_tag`; if :attr:`sys.implementation.cache_tag` is not defined then :exc:"
"`NotImplementedError` will be raised). By passing in ``True`` or ``False`` "
"for *debug_override* you can override the system's value for ``__debug__``, "
"leading to optimized bytecode."
msgstr ""

#: library/imp.rst:212
msgid "*path* need not exist."
msgstr ""

#: library/imp.rst:214
msgid ""
"If :attr:`sys.implementation.cache_tag` is ``None``, then :exc:"
"`NotImplementedError` is raised."
msgstr ""

#: library/imp.rst:218
msgid "Use :func:`importlib.util.cache_from_source` instead."
msgstr ""

#: library/imp.rst:221
msgid "The *debug_override* parameter no longer creates a ``.pyo`` file."
msgstr ""

#: library/imp.rst:227
msgid ""
"Given the *path* to a :pep:`3147` file name, return the associated source "
"code file path.  For example, if *path* is ``/foo/bar/__pycache__/baz."
"cpython-32.pyc`` the returned path would be ``/foo/bar/baz.py``.  *path* "
"need not exist, however if it does not conform to :pep:`3147` format, a :exc:"
"`ValueError` is raised. If :attr:`sys.implementation.cache_tag` is not "
"defined, :exc:`NotImplementedError` is raised."
msgstr ""

#: library/imp.rst:235
msgid ""
"Raise :exc:`NotImplementedError` when :attr:`sys.implementation.cache_tag` "
"is not defined."
msgstr ""

#: library/imp.rst:239
msgid "Use :func:`importlib.util.source_from_cache` instead."
msgstr ""

#: library/imp.rst:245
msgid ""
"Return the :pep:`3147` magic tag string matching this version of Python's "
"magic number, as returned by :func:`get_magic`."
msgstr ""

#: library/imp.rst:248
msgid ""
"Use :attr:`sys.implementation.cache_tag` directly starting in Python 3.3."
msgstr ""

#: library/imp.rst:253
msgid ""
"The following functions help interact with the import system's internal "
"locking mechanism.  Locking semantics of imports are an implementation "
"detail which may vary from release to release.  However, Python ensures that "
"circular imports work without any deadlocks."
msgstr ""

#: library/imp.rst:261
msgid ""
"Return ``True`` if the global import lock is currently held, else ``False``. "
"On platforms without threads, always return ``False``."
msgstr ""

#: library/imp.rst:264
msgid ""
"On platforms with threads, a thread executing an import first holds a global "
"import lock, then sets up a per-module lock for the rest of the import.  "
"This blocks other threads from importing the same module until the original "
"import completes, preventing other threads from seeing incomplete module "
"objects constructed by the original thread.  An exception is made for "
"circular imports, which by construction have to expose an incomplete module "
"object at some point."
msgstr ""

#: library/imp.rst:292 library/imp.rst:305
msgid ""
"The locking scheme has changed to per-module locks for the most part.  A "
"global import lock is kept for some critical tasks, such as initializing the "
"per-module locks."
msgstr ""

#: library/imp.rst:282
msgid ""
"Acquire the interpreter's global import lock for the current thread. This "
"lock should be used by import hooks to ensure thread-safety when importing "
"modules."
msgstr ""

#: library/imp.rst:286
msgid ""
"Once a thread has acquired the import lock, the same thread may acquire it "
"again without blocking; the thread must release it once for each time it has "
"acquired it."
msgstr ""

#: library/imp.rst:290
msgid "On platforms without threads, this function does nothing."
msgstr ""

#: library/imp.rst:302
msgid ""
"Release the interpreter's global import lock. On platforms without threads, "
"this function does nothing."
msgstr ""

#: library/imp.rst:313
msgid ""
"The following constants with integer values, defined in this module, are "
"used to indicate the search result of :func:`find_module`."
msgstr ""

#: library/imp.rst:319
msgid "The module was found as a source file."
msgstr ""

#: library/imp.rst:326
msgid "The module was found as a compiled code object file."
msgstr ""

#: library/imp.rst:333
msgid "The module was found as dynamically loadable shared library."
msgstr ""

#: library/imp.rst:340
msgid "The module was found as a package directory."
msgstr ""

#: library/imp.rst:347
msgid "The module was found as a built-in module."
msgstr ""

#: library/imp.rst:354
msgid "The module was found as a frozen module."
msgstr ""

#: library/imp.rst:361
msgid ""
"The :class:`NullImporter` type is a :pep:`302` import hook that handles non-"
"directory path strings by failing to find any modules.  Calling this type "
"with an existing directory or empty string raises :exc:`ImportError`. "
"Otherwise, a :class:`NullImporter` instance is returned."
msgstr ""

#: library/imp.rst:366
msgid "Instances have only one method:"
msgstr ""

#: library/imp.rst:370
msgid ""
"This method always returns ``None``, indicating that the requested module "
"could not be found."
msgstr ""

#: library/imp.rst:373
msgid ""
"``None`` is inserted into ``sys.path_importer_cache`` instead of an instance "
"of :class:`NullImporter`."
msgstr ""

#: library/imp.rst:377
msgid "Insert ``None`` into ``sys.path_importer_cache`` instead."
msgstr ""

#: library/imp.rst:384
msgid "Examples"
msgstr "Exemples"

#: library/imp.rst:386
msgid ""
"The following function emulates what was the standard import statement up to "
"Python 1.4 (no hierarchical module names).  (This *implementation* wouldn't "
"work in that version, since :func:`find_module` has been extended and :func:"
"`load_module` has been added in 1.4.) ::"
msgstr ""

#: library/imp.rst:13
msgid "statement"
msgstr ""

#: library/imp.rst:13
msgid "import"
msgstr ""

#: library/imp.rst:23
msgid "file"
msgstr ""

#: library/imp.rst:23
msgid "byte-code"
msgstr ""
